一、使用 程序包管理器控制台 (PMC) 及 Scaffold-DbContext
命令
二、官网链接:反向工程 - EF Core | Microsoft Learn
三、需要先使用 NuGet 包管理器安装 Microsoft.EntityFrameworkCore.Design
四、基本命令格式
1. 基本格式
Scaffold-DbContext '数据库的连接字符串' EFCore数据库提供程序
2. 示例A
Scaffold-DbContext 'Server=(localdb)\\mssqllocaldb;Database=databaseName;Trusted_Connection=True;MultipleActiveResultSets=true' Microsoft.EntityFrameworkCore.SqlServer
3. 示例B
Scaffold-DbContext 'Server=localhost;Database=kyglxt;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True;User=sa;Password=123456' Microsoft.EntityFrameworkCore.SqlServer -NoOnConfiguring -UseDatabaseNames -DataAnnotations -OutputDir KyglxtData\\Entity -ContextDir KyglxtData
五、可选参数
-OutputDir
指定在其中为类搭建基架的目录
-ContextDir
将 DbContext 类搭建到与实体类型类不同的目录中
-NoOnConfiguring
禁止创建包含连接字符串的 OnConfiguring
方法
-UseDatabaseNames
尽可能保留原始数据库名称。 无效的 .NET 标识符仍将被修正,而合成名称(如导航属性)仍将符合 .NET 命名约定。
-DataAnnotations
使用映射属性,也称为 注释、注解、标注
-Schemas
指定将为其生成实体类型的表和视图的架构。 如果省略此参数,则包含所有架构。
-Tables
指定了将为其生成实体类型的表和视图。 可以使用 schema.table 或 schema.view 格式包含特定架构中的表或视图。 如果省略此选项,则包含所有表和视图。
-Context
指定 DbContext 名称。默认情况下,已搭建基架的 DbContext
类名将是后缀为 Context 的数据库名称。
-Namespace
默认情况下,命名空间将是根命名空间加上项目根目录下任何子目录的名称。
-ContextNamespace
指定 DbContext 类的命名空间。
-Force
强制覆盖现有文件。默认情况下,EF 命令不会覆盖任何现有代码,以防止意外丢失代码。