EF Core开发模式之DB First
EF Core开发模式之DB First
DB First模式比较符合我们的传统开发模式,概念模型设计完成后,首先创建数据库,然后通过EF Core与数据库建立映射关系,以数据库为驱动,自动生成C#的实体模型,从而驱动整个开发流程。
一、环境准备
- 开发环境:.NET Core 3.1
- IDE工具:Visual Studio 2019
- 数据库:SQL Server 2012
二、依赖Package包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools(对Scaffold-DbContext命令的支持)
可通过“dotnet cli” 命令行或“nuget包管理器”添加依赖包引用。
1.通过“dotnet cli命令行”添加所需的依赖包。
在要添加引用的项目文件夹根目录打开命令行窗口,执行添加package的命令即可。dotnet cli命令行添加package语法如下:
模板: dotnet add package <packageName>
例子:dotnet add package Microsoft.EntityFrameworkCore.Tools
如在项目“efc1”中添加“Microsoft.EntityFrameworkCore.Tools”包。
2. 通过Visual Studio中的“nuget包管理器”实现相关包的添加。
在VS中打开“nuget包管理器”,搜索找到我们需要的Package,选择要添加到的项目后,点击安装即可。
三、生成实体模型
1.在Visual Studio中打开“程序包管理器控制台”;
2.在控制台命令行中,输入Scaffold-DbContext命令,完成从数据库到C#模型代码的自动创建。
Scaffold-DbContext "Data Source=.;Initial Catalog=EFTest;Persist Security Info=True;User ID=sa;PWD=as" Microsoft.EntityFrameworkCore.SqlServer -o Models -f
如果运行出错可以考虑:数据库名称是否出错(Initial Catalog=EFTest);账户和密码是否出错(User ID=sa;PWD=as)。
**其中,命令中的“Microsoft.EntityFrameworkCore.SqlServer”,指明了使用SqlServer数据库Provider,用来连接SqlServer数据库,其它数据库需要调整相应的Provider即可。
Scaffold-DbContext命令参数说明:
-OutputDir (-o) :实体文件所存放的文件目录
-ContextDir : DbContext文件存放的目录
-Context : DbContext文件名
-Schemas : 需要生成实体数据的数据表所在的模式
-Tables(-t) : 需要生成实体数据的数据表的集合
-Force (-f)强制执行,重写已经存在的实体文件**
3.命令执行完成后,在项目的Models目录下,就自动的创建好了相关的实体模型类和DbContext上下文类了,之后我们直接使用即可。
此图中包含项目原有的文件,同时代码部分为任意选取的一个文件的任意部分