只要不是初创公司,哪家还没个老项目,所以DBFirst还是很有用武之地的
1.首先创建一个空的创建一个ASP.NET Core Web 应用(类库也行)DDD模式放在Domain中比较好
2.引入包,在程序包管理控制台运行命令
- 核心 NuGet 包:Microsoft.EntityFrameworkCore.Design
当然还有其他的,缺啥补啥就行
Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design Install-Package Microsoft.EntityFrameworkCore.Tools
3.根据现有数据库生成实体和上下文,同样在程序包管理台运行命令
Scaffold-DbContext "server=DESKTOP-9HM12DD\YYBSQL;database=EFCoreDemo1;integrated security=SSPI;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
默认就行,会生成一个Models文件夹(可能是隐藏状态),里面包含生成的类文件和DBContent(数据库名+Context.cs文件)DBContent文件拷贝到DDD模式的Infrastructure中,改改命名空间
"server=DESKTOP-9HM12DD\YYBSQL;database=EFCoreDemo1;integrated security=SSPI;"为连接数据库字符串,如需其他数据库请自行修改,-OutputDir Models中Models为生成实体文件夹名。
后续如数据库新增或删减表,在命令后加-Force,即
Scaffold-DbContext "server=DESKTOP-9HM12DD\YYBSQL;database=EFCoreDemo1;integrated security=SSPI;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
可以把DBContext中的OnModelCreating方法里的类配置移动到单独的实现IEntityTypeConfiguration配置类中也可以。
原文链接:https://blog.csdn.net/qq_25086397/article/details/88941513
其他的一些配置说明文章
https://blog.csdn.net/u010012264/article/details/128189073 .net core 创建WebAPI以及使用EF DBFirst框架使用方法与疑问解答(.net 6)
https://blog.csdn.net/xuhss_com/article/details/124311535 EFCore 的 DbFirst 模式