DB First
1.从Nuget包中安装Entity Framework的依赖
- EntityFrameworkCore
- EntityFrameworkCore.SqlServer
- EntityFrameworkCore.Tools
其中Tools依赖包是用于在Nuget包中的管理控制台中执行以下命令之一,该命令是用于从数据库中生成对应的实体类与数据操作对象:
Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>]
[-Schemas <String>] [-Tables <String>] [-DataAnnotations] [ -Force] [-Project <String>]
[-StartupProject <String>] [-Environment <String>] [<CommonParameters>]
参数介绍:
-Connection :
指定数据库的连接字符串。
-Provider :
指定要使用的提供程序。例如,Microsoft.EntityFrameworkCore.SqlServer。
-OutputDir :
指定用于输出类的目录。如果省略,则使用顶级项目目录。
-Context :
指定生成的DbContext类的名称。
-Schemas :
指定要为其生成类的模式。
-Tables :
指定要为其生成类的表。
-DataAnnotations :
使用DataAnnotation属性在可能的情况下配置模型。如果省略,输出代码将仅使用流畅的API。
-Force :
强制脚手架覆盖现有文件。否则,只有在没有输出文件被覆盖的情况下,代码才会继续。
-Project :
指定要使用的项目。如果省略,则使用默认项目。
-StartupProject :
指定要使用的启动项目。如果省略,则使用解决方案的启动项目。
-Environment :
指定要使用的环境。如果省略,则使用“开发”。
-UseDatabaseNames:使用数据库的表名、字段名生成实体类
示例:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -UseDatabaseNames -OutputDir Models
在appsetting.json添加连接字符串
"ConnectionStrings": {
"XinTaiWebGIS": "Server=;Database=XinTaiWebGIS;Trusted_Connection=True;MultipleActiveResultSets=true"
}
在Startup.cs添加依赖注入
services.AddDbContext<数据操作对象>(options => options.UseSqlServer(Configuration.GetConnectionString(这里添加appsetting.json中添加的连接字符串主键)));
EF Core工具命令
使用Nuget管理控制台模式
- Add-Migration :添加一个新的迁移,string是迁移的名称
- remove-Migration:删除上一次的迁移
- Update-Database:更新最近一次的迁移到数据库(有时候可能与原来的数据库产生冲突,所以可能并不能迁移到数据库)
- Update-Database -Migration: 表示清空数据库,回到空数据库状态
- Script-Migration:查看迁移脚本
使用cmd模式
- dotnet ef migrations add InitialCreate -v
- dotnet ef database update -v