EF Core 3.1 DB First的使用

數據庫:SqlServer

EntityFrameworkCore版本:3.1.4

1、添加依賴包

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools          //用於在“程序包管理控制檯”和“CMD”執行命令

2、根據數據庫生成實體類(Models)和數據庫上下文(DbContext)

       打開程序包管理控制檯:工具 => NuGet包管理器 => 程序包管理控制檯

執行命令:Scaffold-DbContext "Data Source=.;Initial Catalog=UserService;User ID=sa;Password=123456" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -ContextDir  Context -Context UserContext -DataAnnotations -Force

       -OutputDir <String>    實體文件所存放的文件目錄
       -ContextDir <String>   DbContext文件存放的目錄
       -Context <String>        DbContext文件名,可以指定別名,防止替換掉改好的DBContext。
       -Schemas [params]      需要生成實體數據的數據表所在的Schemas ,默認是dbo
       -Tables [params]          需要生成實體數據的數據表的集合
       -DataAnnotations      是否生成特性;如:實體類屬性上的[Key]、[StringLength(8)] 等
       -UseDatabaseNames 直接使用數據庫中的表名和列名(某些版本不支持)
       -Force                         強制執行,重寫已經存在的實體Models文件和上下文DbContext文件

錯誤處理:

1、如果生成失敗(Build failed.),請確定項目能生成成功。

2、Your startup project 'ApiDemo_Core3_1' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.   

      在啓動項目“ApiDemo_Core3_1”中安裝“Microsoft.EntityFrameworkCore.Design”

      或者 將EF所在類庫設爲啓動項再執行。

3、打印Console日誌

添加依賴:Microsoft.Extensions.Logging  、  Microsoft.Extensions.Logging.Console

修改上下文類DbContext:

private readonly static ILoggerFactory loggerFactory = LoggerFactory.Create(config => { config.AddConsole(); });

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {
       optionsBuilder.UseSqlServer("Data Source=.;Initial Catalog=UserService;User ID=sa;Password=123456").UseLoggerFactory(loggerFactory);
    }
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章