【EFCORE笔记】反向工程与相关工具

反向工程

支持工具

反向工程之前你将需要安装 PMC 工具或 CLI 工具,还需要安装相应数据库提供程序。

使用工具命令

Scaffold-DbContext 'Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Chinook'

Microsoft.EntityFrameworkCore.SqlServer

 

dotnet ef dbcontext scaffold "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Chinook" Microsoft.EntityFrameworkCore.SqlServer

 

配置和用户机密

dotnet user-secrets set ConnectionStrings.test "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Test" dotnet ef dbcontext scaffold Name=ConnectionStrings.test Microsoft.EntityFrameworkCore.SqlServer

 

提供程序名称

第二个参数是提供程序名称。 提供程序名称通常是与提供程序的 NuGet 包名称相同

 

指定表

默认情况下,数据库中的所有表都被反向工程,您可以通过指定架构和表筛选。

在PMC 命令中使用 -Schemas 参数,在 CLI 中使用 --schema 参数,可指定架构中的每个表。

在PMC 命令中使用 -Tables 参数,在 CLI 中使用 --table 参数,可指定特定的表。

Scaffold-DbContext ... -Tables Artist, Album

dotnet ef dbcontext scaffold ... --table Artist --table Album

 

保留数据库名称

默认情况下,表和列的名称被更好地生成符合 .NET 命名约定的类和属性,使用 -

UseDatabaseNames(PMC) --use-database-names(CLI),将尽可能保留原始数据库的表名称和列名称。

 

Fluent API 或数据注释

默认情况,优先使用 Fluent API 配置模型,指定-DataAnnotations(PMC) 或--data- annotations(CLI) 在数据注解可用的情况下,优先使用数据注解配置模型。

 

DbContext 名称

默认情况下,生成 DbContext 的类名为:数据库名称+Context后缀,使用-Context(PMC) 和 --context(CLI) 可自定义名称。

 

目录和命名空间

默认情况,反向工程生成的类和 DbContext 存放在项目根目录,命名空间使用项目默认命名空间,可通过 -OutputDir(PMC) --output-dir(CLI) 指定的目录。命名空间将为根命名空间加上任何项目的根目录下的子目录的名称。

 

此外可以使用-ContextDir(PMC) 和--context-dir(CLI) 将 DbContext 类放在独立的目录之下。

Scaffold-DbContext ... -ContextDir Data -OutputDir Models

dotnet ef dbcontext scaffold ... --context-dir Data --output-dir Models

 

Entity Framework Core tools reference

来自<https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/>

 

 

posted @ 2021-03-25 23:39  LBO.net  阅读(106)  评论(0编辑  收藏  举报
//返回顶部