Entity Framework Core 数据库优先(DB First)

DB First

1.从Nuget包中安装Entity Framework的依赖

  1. EntityFrameworkCore
  2. EntityFrameworkCore.SqlServer
  3. EntityFrameworkCore.Tools

其中Tools依赖包是用于在Nuget包中的管理控制台中执行以下命令之一,该命令是用于从数据库中生成对应的实体类与数据操作对象:

Scaffold-DbContext [-Connection]  [-Provider]  [-OutputDir ] [-Context ] 
[-Schemas ] [-Tables ] [-DataAnnotations] [ -Force] [-Project ] 
[-StartupProject ] [-Environment ] []

参数介绍:

-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管理控制台模式

  1. Add-Migration :添加一个新的迁移,string是迁移的名称
  2. remove-Migration:删除上一次的迁移
  3. Update-Database:更新最近一次的迁移到数据库(有时候可能与原来的数据库产生冲突,所以可能并不能迁移到数据库)
  4. Update-Database -Migration: 表示清空数据库,回到空数据库状态
  5. Script-Migration:查看迁移脚本

使用cmd模式

  1. dotnet ef migrations add InitialCreate -v
  2. dotnet ef database update -v

你可能感兴趣的:(编程知识)