只有学习,内心才能踏实。最近,计划了一些学习计划。每次学习完后,就会写篇博客总结。相当于笔记记录,等有时候用到的时候,可以翻出来看看。再一个是,记录一下学习的过程。用此激励自己进步。如有人看到本文章,有写的不当或者错误的地方,请留言支持。本人自学,总会有错误的地方,请帮忙指点。谢谢
本次计划是学习.Net Core 搭建简单的项目框架。数据交互用EF Core、简单的三层架构(重点层之间的依赖注入)、前端Vue.js(后期会有专栏介绍)。Net Core 的依赖注入,中间件,过滤器等等、.Net Core WebAPI等。
本篇总结Entity Framework Core DB Frist,下面会介绍Code Frist
Entity Framework Core 与Entity Framework
简单的说:EF Core 是轻量化、可扩展和跨平台版的 Entity Framework。
可以参考:https://docs.microsoft.com/zh-cn/ef/
EF Core DB Frist
概念知识在这里不提了,.Net Core 依然基于.Net Framework,现在我用的.Net Framework 4.6.1 ,目前为止最新的为.Net Framework 4.7.2。.Net Core 用的是2.1版本(dll 的版本要与.net core 的版本对照,不然会产生不必要的麻烦)。
1.创建.Net Core Web
2.工具> NuGet包管理器>包管理器控制台
选择项目目录
执行脚本:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
3.运行以下命令以从现有数据库创建模型
SA 登录时的命令:
Scaffold-DbContext "Server= 192.168.1.107;Database = Leaps; Integrated Security = False; User ID = sa; Password = Password123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Windows 登录时的命令:
Scaffold-DbContext "Server=.;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Scaffold-DbContext “数据库连接字符串”; Microsoft.EntityFrameworkCore.SqlServer -OutputDir 输出的文件夹,如无此参将生成到项目根目录 ;如果只想生成某些表将使用Tables参数 如: -Tables(“table1”,”table2”,”table3”,”table4”) 。其他参数可输入 Scaffold-DbContext -? 查看帮助.
4.建模成功,如下图所示
5.更改DbContext configuration
把Models\BloggingContext.cs 中OnConfiguring函数删掉
在Models\BloggingContext.cs 添加新的构造函数
public BloggingContext(DbContextOptions<BloggingContext> options)
: base(options)
{ }
在appsettings.json 配置数据库连接
在Startup.cs 中注册 数据库配置信息。
6.创建Controller 与View
此部分就不做详细的介绍。后面会有文章详细的介绍Controller 与View
总结
1:如果说,DB 数据结构有更改,每次更改后需要执行数据库创建模型命令(第三步),执行后,别忘了改掉DBContext
2:遗留的问题就是:在执行第三步建模命令的时候,有时会报错,提示连接失败等信息,需要多执行几次。此问题需要大神指点。谢谢
3:欢迎大家指点错误和给出建议
只有学习,内心才能踏实,我是CHIASING