Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 定义脚手架DbContext反向工程的自定义模型名称_C#_.net Core_Entity Framework Core_Scaffolding_Ef Core 2.1 - Fatal编程技术网

C# 定义脚手架DbContext反向工程的自定义模型名称

C# 定义脚手架DbContext反向工程的自定义模型名称,c#,.net-core,entity-framework-core,scaffolding,ef-core-2.1,C#,.net Core,Entity Framework Core,Scaffolding,Ef Core 2.1,我正在使用scaffoldbcontext对现有数据库进行反向工程。我正在为实体指定自定义的ContextDir、Context和文件夹名称。我还使用-DataAnnotations。下面是我正在使用的命令: Scaffold-DbContext "{connection_string}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -ContextDir DbContexts -Context TestContext

我正在使用
scaffoldbcontext
对现有数据库进行反向工程。我正在为实体指定自定义的
ContextDir
Context
和文件夹名称。我还使用
-DataAnnotations
。下面是我正在使用的命令:

Scaffold-DbContext "{connection_string}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -ContextDir DbContexts -Context TestContext -Tables "tableA", "tableB", "tableC" -DataAnnotations -Force
它工作得很好,但是。。就型号名称而言,我仅限于两个选项:

  • 使用
    -UseDatabaseNames
    标志,并且
    Scaffold DbContext
    将创建与数据库中显示的完全相同的表名和列名(在我的示例中为“tableA”)
  • Ommit
    -UseDatabaseNames
    标志,数据库名称将更改为更符合C#name样式约定(在我的示例中为“TableA”)
  • 我在寻找什么?我在寻找第三种选择。我希望能够一个接一个地明确命名它们。例如:

    -Tables "tableA" as "CustomTableA", "tableB" as "CustomTableB"
    
    我为什么需要这个?这里有一个问题: (场景:在未来,数据库将被更改,我希望在模型中包含4个新表):

    当我今天为模型重命名一个时(在它从db反向工程之后),明天我将再次运行
    Scaffold DbContext
    以添加新表。。改变后的模型仍然存在。这方面有很多工作要做。所以在第一次搭建之后,我不得不手动将模型添加到我的代码中。能够明确地说出应该使用什么名称,对于大型的、公司的、遗留的数据库项目来说将是非常棒的

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


    顺便说一句,除了这些模型中的自定义列/字段名外,这也太棒了

    我以前使用过类似于此命令的(
    dotnet ef dbcontext scaffold…
    )并且我非常确定这在当前是不可能的。