我一直在研究需要使用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 Models -force
(第一次发布到Stack Overflow。感谢您的帮助。)
答案 0 :(得分:6)
-UseDatabaseNames
选项旨在保留名称与数据库中的名称完全相同(如果它们不是有效的C#标识符,则只进行少量更正)。
不幸的是,此选项在版本2.0(问题#9146)中不在Scaffold-DbContext
命令中,并且未应用于属性名称(问题#9820)。您必须等待EF Core 2.1按预期使用它。如果您渴望尽早尝试,可以随时使用the nightly builds。
答案 1 :(得分:2)
解决方案:您必须更新为。Net Core 2.1+
,然后才能运行Scaffold-DbContext -UseDatabaseNames
。我在Net 2.1 RC中试过这个,它现在正在运行。