如何防止Entity Framework Core 2.0重命名生成的类中的表和列(数据库优先)

Mik*_*Dev 8 entity-framework-core asp.net-core-mvc

我一直在研究需要使用Entity Framework的ASP.NET MVC Core 2.0项目(针对.NET Core 2.0).要使用的数据库已经存在,我无法更改它.我已经向Entity Framework Core 2.0添加了所有必需的引用.

但是,当我从Nuget包管理器控制台运行以下脚手架命令时,我获得了与原始表相比具有不同大小写的表的POCO模型类.除了其他差异之外,名称中带有下划线的列由没有下划线的属性表示.

当生成POCO模型类时,如何强制脚手架保留所有表名和列名?

脚手架命令的示例.Scaffold-DbContext"Server = Info; Database = Vehicles; Trusted_Connection = True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir模型-force

(第一次发布到Stack Overflow.感谢您的帮助.)

bri*_*lam 7

-UseDatabaseNames选项旨在保留名称与数据库中的名称完全相同(如果它们不是有效的C#标识符,则只进行少量更正).

不幸的是,这个选项Scaffold-DbContext在版本2.0(问题#9146)中没有使用该命令,并且它没有应用于属性名称(问题#9820).您必须等待EF Core 2.1按预期使用它.如果您渴望尽快尝试,可以随时使用每晚构建.


小智 5

解决方案:您必须更新到 . Net Core 2.1+,那么你就可以运行了Scaffold-DbContext -UseDatabaseNames。我已经在 Net 2.1 RC 中尝试过这个,它现在可以工作了。