Asp.net-Core-Mvc
如何防止 Entity Framework Core 2.0 重命名生成類中的表和列(數據庫優先)
我一直在研究需要使用 Entity Framework 的 ASP.NET MVC Core 2.0 項目(針對 .NET Core 2.0)。要使用的數據庫已經存在,我無法更改它。我已將所有必需的引用添加到 Entity Framework Core 2.0。
但是,當我從 Nuget 包管理器控制台執行以下腳手架命令時,與原始表相比,我獲得了具有不同大小寫的表的 POCO 模型類。除了其他差異之外,名稱中帶有下劃線的列由不帶下劃線的屬性表示。
在生成 POCO 模型類時,如何強制腳手架保留所有表和列名?
腳手架命令範例。Scaffold-DbContext “伺服器 = 資訊;數據庫 = 車輛;Trusted_Connection = True;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir 模型 -force
(第一次發佈到 Stack Overflow。感謝您的幫助。)
該
-UseDatabaseNames選項旨在完全保留數據庫中的名稱(如果它們不是有效的 C# 標識符,則只需進行少量更正)。不幸的是,這個選項
Scaffold-DbContext在 2.0 版(issue #9146)中被遺漏了,並且它沒有應用於屬性名稱(issue #9820)。您必須等待 EF Core 2.1 按預期使用它。如果你渴望早點嘗試,你總是可以使用nightly builds。
解決方案:您必須更新到 .
Net Core 2.1+,然後就可以執行了Scaffold-DbContext -UseDatabaseNames。我已經在 Net 2.1 RC 中嘗試過這個,它現在可以工作了。