ASP.NET Core微服务(一)——【完整API搭建及访问过程】:
环境:win10专业版 vs2019 sqlserver2014/2019
对应练习demo下载路径(1积分):【https://download.csdn.net/download/feng8403000/15134527】
对应练习sql下载路径(0积分):【https://download.csdn.net/download/feng8403000/15134699】
1、创建API项目
2、项目层级以及作用
3、引入数据库·这里采用的是sqlserver2014版本,如果是2019以上版本,数据库连接的地址请勿使用【127.0.0.1】,或者用【.】通用即可
3.1、添加NuGe程序包
3.2、添加4个需要的包
安装步骤:
四个包如上安装即可,查看是否安装成功
或
3.3、通过【工具】->【NuGet包管理器】->【程序包管理器控制台】
自动连接写法·sqlserver2019【Data Source=.】
Scaffold-Dbcontext 'Data Source=127.0.0.1;Initial Catalog=数据库name;Integrated Security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 自定义nameContext
密码链接写法·sqlserver2019【Data Source=.】
Scaffold-Dbcontext 'Data Source=127.0.0.1;Initial Catalog=数据库name;User Id=用户名;Password=密码;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 自定义nameContext
这样,我们就有了可以操作的EF对象了。
4、添加【Startup.cs】服务配置
命名空间需求:
代码语言:javascript复制using Microsoft.EntityFrameworkCore;
using WebApiDemo.Models;
所需代码:
代码语言:javascript复制services.AddDbContext<Girl1804Context>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("Girl1804DB"));
});
添加位置:
【appsetting.json】配置文件配置:
配置字符串:
代码语言:javascript复制"ConnectionStrings": {
"Girl1804DB": "Data Source=127.0.0.1;Initial Catalog=girl1804;Integrated Security=True;"
},
配置位置:
账号密码的方式:【Data Source=服务器地址;Initial Catalog=数据库name;User Id=用户名;Password=密码;】
5、EF,通过构造方法注入测试
5.1、添加【api控制器】
5.2添加构造方法注入EF生成的类【Girl1804Context】
5.3、配置路由【[Route("api/[controller]/[action]")]】以及创建查询测试EF
代码语言:javascript复制public object GetInfo() {
return db.GirlSixes.ToList();
}
5.4、启动项目,并访问【api接口】,路径为:【http://localhost:5000/api/Test/GetInfo】
【Ctrl F5】启动
查看浏览器:默认打开路径应为【http://localhost:5000/weatherforecast】
输入:【http://localhost:5000/api/Test/GetInfo】进行数据访问测试。
6、增加函数【Add】·在【TestController】内完成
代码语言:javascript复制 /// <summary>
/// 添加方法
/// </summary>
/// <param name="nickName"></param>
/// <param name="introduce"></param>
/// <returns></returns>
public bool Add(string nickName,string introduce) {
GirlSix g = new GirlSix();
g.Id = System.Guid.NewGuid().ToString("N");
g.CreateDate = DateTime.Now;
g.NickName = nickName;
g.Introduce = introduce;
db.GirlSixes.Add(g);
int rows = db.SaveChanges();
return rows > 0 ?true:false;
}
7、修改【SelectById】&【Update】函数·在【TestController】内完成
代码语言:javascript复制 /// <summary>
/// 单个查询
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public object SelectById(string id) {
return db.GirlSixes.Where(o => o.Id == id).SingleOrDefault();
}
/// <summary>
/// 修改方法
/// </summary>
/// <param name="id"></param>
/// <param name="nickName"></param>
/// <param name="introduce"></param>
/// <returns></returns>
public bool Update(string id,string nickName, string introduce) {
GirlSix girlSix = db.GirlSixes.Where(o => o.Id == id).SingleOrDefault();
if (girlSix == null) {
return false;
}
girlSix.NickName = nickName;
girlSix.Introduce = introduce;
int rows = db.SaveChanges();
return rows > 0 ? true : false;
}
8、删除函数【Del】·在【TestController】内完成
代码语言:javascript复制 /// <summary>
/// 删除方法
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public bool Del(string id) {
GirlSix girlSix = db.GirlSixes.Where(o => o.Id == id).SingleOrDefault();
if (girlSix == null)
{
return false;
}
db.GirlSixes.Remove(girlSix);
int rows = db.SaveChanges();
return rows > 0 ? true : false;
}
9、postman测试·【Ctrl F5】启动后,根据对应的接口路径进行测试。
9.1查询所有测试:
9.2、增加测试
9.3、修改测试
9.4、删除测试
10、总结
a)、EF包4个,别错喽
b)、根据对应的数据库使用对应的引入方式,本地用直接连,远程用账号密码连。
c)、在ASP.NET Core中引入的EF如果要使用多表联合查询建议使用Linq进行操作。
d)、在修改操作时直接SaveChanges操作即可。
希望此文对大家有所帮助,后续会编写
ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】、
ASP.NET Core微服务(三)——【跨域配置】、
ASP.NET Core微服务(四)——【静态vue使用axios解析接口】、
ASP.NET Core微服务(五)——【vue脚手架解析接口】、
ASP.NET Core微服务(六)——【redis操作】、
ASP.NETCore微服务(七)——【docker部署linux上线】
等文章。
此文标题为ASP.NET Core微服务(一)——【完整API搭建及访问过程】
请关注,后续内容很快更新。