[英]How to customise entity name casing in EF Core with database first
我有一個現有的EF6
代碼庫,我正在嘗試將其移植到EF Core
,並且我有一個我無法刪除/修改的現有數據庫。 所以我使用以下命令從我的數據庫中構建實體類
Scaffold-DbContext "MyConnectionString" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
它確實生成DbContext
和必要的實體。 現在,似乎他們已經改變了命名約定(如何命名實體,屬性和導航)A LOT和新創建的實體與我現有的實體非常不同! 我找不到自定義這些約定的方法,所以我不得不在很多地方手動更改代碼! (傷心!)
其中一個變化是:現在EF不會從表名中單個化類名。 例如,如果表名是'附件',早期的實體類曾經是'附件',現在它是'附件'!
為了解決這個問題,我使用了IPluralizer接口,並使用Humanizer庫對實體類名稱進行Singularize。
當我使用Humanizer
庫時,它Humanizer
"Accessories".Singularize(); //produces "Accessory"
"XMLDetails".Singularize(); //produces "XMLDetail"
但是,在EF Core
創建的最終實體類中,第二個屬性名稱變為Xmldetail
忽略原始大小寫! 有沒有辦法通過EF Core腳手架保留原始套管?
注意:我正在使用Microsoft.EntityFrameworkCore.SqlServer
版本2.0.1
以及面向.NET Standard 2.0
類庫。
我不確定這一點。
其中一個變化是:現在EF不會從表名中單個化類名。 例如,如果表名是'附件',早期的實體類曾經是'附件',現在它是'附件'!
到目前為止我所知道的,將EF連接到DB時有一個選項。 它與早期版本的輸出相同。
像這樣: https : //dotnetinterviewquestion.files.wordpress.com/2013/10/ut.png
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.