一、EFCoreDBFirst:先有数据库,然后通过映射得到实体(和数据库的表对应)
1.可以通过EfCore带有的api来完成从代码生成数据库
命令:
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
工具--nuget包管理器--程序包管理器控制台:命令执行:
Scaffold-DbContext "Data Source=地址;Initial Catalog=数据库名;User ID=sa;Password=密码" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entity -Force -Context EntityDbContext -ContextDir ./
命令参数:
-OutputDir *** 实体文件所存放的文件目录
-ContextDir *** DbContext文件存放的目录
-Context *** DbContext文件名
-Schemas *** 需要生成实体数据的数据表所在的模式
-Tables *** 需要生成实体数据的数据表的集合
-DataAnnotations
-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
-Force 强制执行,重写已经存在的实体文件
二、EFCoreCodeFirst:(迁移):代码先行,现有代码再有数据库
1.可以通过EfCore带有的api来完成从代码生成数据库
2.迁移
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Design
迁移命令:CLI命令
创建迁移:migrationname为迁移名称 dotnet ef migrations add migrationName
移除迁移(删除最近的一次迁移) dotnet ef migrations remove
应用所有的迁移(使迁移文件应用到数据库) dotnet ef database update migrationName
生成对应版本的脚本 dotnet ef migrations script
查看迁移列表 dotnet ef migrations list
查看数据库上下文信息 dotnet ef dbcontext info
迁移命令:PMC命令
创建迁移:migrationname为迁移名称 add-migration migrationName
移除迁移(删除最近的一次迁移) remove-migration
应用所有的迁移(使迁移文件应用到数据库) update-database
指定版本进行迁移 update-database migrationName
生成对应版本的脚本 Script-Migration