EFCore Scaffold-DbContext可以生成自定义模型名称吗?

时间:2019-11-21 17:51:20

标签: c# entity-framework-core scaffolding ef-database-first ef-core-3.0

我正在使用EFCore 3.0和数据库优先方法,并且想知道如何生成Model名称。首先,我使用-DataAnnotations-Force开关,命令看起来像这样:

Scaffold-DbContext "data source=foo;initial catalog=bar;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;Connection Timeout=300;Application Name=FooBar" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities/Bar -ContextDir DbContexts -Context BarContext -Tables "Cars", "Makes", "Types" -DataAnnotations -Force

Scaffold-DbContext创建的C#模型与数据库中的表完全相同。因此它将创建3个类:Cars.csMakes.csTypes.cs

我的问题是:我们可以自定义这些名称吗?我可以生成类Auto.cs而不是Cars.cs吗?

此任务看起来很琐碎,因为从人的角度来看,它是此算法:

  1. 运行Scaffold-DbContext

  2. Cars.cs类重构为Auto.cs

  3. 完成。最终结果:

    [Table("cars")]
    public partial class Auto
    {
        public Auto()
        {
        }
    
    }
    

因此,如果我第一个问题的答案是“否”。我的后续问题是:我们可以以某种方式使其自动化吗?这确实不是一个复杂的任务。如果我们将命令行更改为:

-Tables "Cars" as "Auto", "Makes" as "Make", "Types" as "Type

是否可以更改/覆盖Scaffold-DbContext命令?有人做过吗?谢谢!

1 个答案:

答案 0 :(得分:1)