Asp.net-Core-Mvc

如何防止 Entity Framework Core 2.0 重命名生成類中的表和列(數據庫優先)

  • May 12, 2018

我一直在研究需要使用 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 中嘗試過這個,它現在可以工作了。

引用自:https://stackoverflow.com/questions/46934893