为Scaffold-DbContext逆向工程定义自定义模型名称

时间:2019-09-19 13:25:29

标签: c# .net-core entity-framework-core scaffolding ef-core-2.1

我正在使用Scaffold-DbContext对现有数据库进行反向工程。我为实体指定了自定义ContextDirContext和文件夹名称。我也使用-DataAnnotations。这是我正在使用的命令:

Scaffold-DbContext "{connection_string}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -ContextDir DbContexts -Context TestContext -Tables "tableA", "tableB", "tableC" -DataAnnotations -Force

效果很好,但是,在模型名称方面,我仅限于两个选择:

  1. 使用-UseDatabaseNames标志,Scaffold-DbContext将创建表和列名,它们与数据库中显示的名称完全相同(在我的示例中为“ tableA”)。
  2. 省略-UseDatabaseNames标志,并更改数据库名称以更符合C#名称样式约定(在我的示例中为“ TableA”)。

我正在寻找什么?我正在寻找第三个选择。我希望能够一个个地明确命名它们。例如:

-Tables "tableA" as "CustomTableA", "tableB" as "CustomTableB"

我为什么需要那个?这是一个问题: (场景:将来,数据库将被更改,并且我要在模型中包括4个新表):

今天(当从数据库进行反向工程后)为模型重命名一个模型时,明天我将再次运行Scaffold-DbContext以添加新表。更改后的模型仍然存在。为此,有很多工作要做。因此,在第一次搭建好脚手架之后,我不得不手动将模型添加到代码中。能够明确地说出应使用的名称,对于大型公司旧数据库项目确实非常有用。

Scaffold-DbContext中是否有类似的选项?如果没有,是否有计划添加它?如果不是,是否还有其他具有这种功能的工具?

顺便说一句。此外,这些模型中的自定义列/字段名称也将很棒

0 个答案:

没有答案