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     实体文件所存放的文件目录
       -ContextDir    DbContext文件存放的目录
       -Context         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);
    }
}

 

 

你可能感兴趣的:(.net,.net,Core)