没想到有人催更了哈哈 还有人问我问题 满满的成就感 趁着现在工作不忙 继续更新!
上一节我们实现了一个简易的API接口,但是我们发现,实现的API接口并没有真正的从数据库中去读取数据,在真正的开发中,和数据库的交互是必不可少的。那么接下来我们就去学习一下数据库的连接以及实体类的建立。
(3)数据库的连接以及实体类的建立
首先呢,我们需要安装以下三个Nuget程序包:工具->Nuget包管理器->管理解决方案的Nuget程序包
安装以下三个程序包:
我们既然要连接数据库,肯定要有这个数据库,接着我们去建立一个新的数据库
首先确保我们电脑上有sqlserver和ssms,没有的同学去安装一下哈,我就不带大家去安装了
第一步 连接数据库
第二步 新建一个数据库
新建表
建立一个叫做student的表,包含Id和Name两个字段
记得给Id字段设置自增
建完表之后我们往里面插入一条数据
ok,这样我们的数据库就有数据了,我们去试着能不能在API接口中获取到这条数据
再次回到我们的Visual Studio中,我们点击工具->Nuget包管理器->程序包管理控制台
我们要连接的是本地的数据库,我使用的是Windows身份验证,输入以下字符串
Scaffold-DbContext "Server=localhost;Database=Test;Trusted_Connection=True;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
localhost代表的是本地数据库,Test是我们刚建立的数据库的名称,后面的字符串代表使用Windows身份验证登录并且我们信任服务器证书。最后的-OutputDir Models代表我们把实体类和数据库上下文输出到了一个叫做Models的文件夹中
ps:如果你使用的是账号密码登录,使用以下字符串:
Scaffold-DbContext "Server=localhost;Database=你的数据库名称;User Id=你的账号;Password=你的密码;TrustServerCertificate=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
然后我们发现资源管理器中多了一个Models的文件夹 这就代表连接成功了!
解释一下这个Context数据库上下文是什么 大家可以看一下这个博主的文章:DBContext是什么 大概意思就是通过Context构建起后端代码与数据库交互的桥梁
接着我们要在programs里把Context给注入进去
builder.Services.AddDbContext<TestContext>(opt =>
opt.UseSqlServer(builder.Configuration["ConnenctionString"]));
ConnenctionString就是我们的数据库连接字符串 我们放到了appsetting里
"ConnenctionString": "Server=localhost;Database=Test;Trusted_Connection=True;TrustServerCertificate=True;"
接下来我们在Testcontroller中使用构造函数注入,把数据库上下文Context注入进去 然后就可以在这个controller中使用它去操作数据库了
写上这几行代码 我们的通过构造函数进行的依赖注入就完成了(新手可能不太理解,大家最好去搜搜构造函数依赖注入的方式 自己去思考 不要着急 现在跟着我做就可以)
最后我们写一个方法 去数据库中查询我们的student表
这里使用的查询方式是EF Core 有点类似于java的mybatisplus,不明白的同学可以去学习一下EF core的查询方式
最后我们点击运行项目 查看swagger的接口 就可以看到我们的student表的第一条数据了
我们可以看到 数据库的数据已经被查询出来了!
通过这章,我们学习了如何连接数据库并进行操作数据库,在真正的开发中还需要进行进一步的数据组装,这里只是一个简单的小例子。
下一章我们将把我们的项目升级为三层架构,即数据库访问层——业务逻辑层——API接口层