2012-03-19 66 views
2

數據庫我有我與操作的數據庫中有一個名爲類似「PRODUCT_ID」,「event_tracking_detail_type」每列等POCO別名爲具有非標準命名約定

而不是使用標題其全部小寫並且在名稱之間具有_。我已經關閉了代碼生成並使用了POCO生成器,但是我希望將POCO命名爲ProductId,ManufacturerImage(而不是manufacturer_image)的行。

有沒有辦法讓POCO擁有不同的名字,那麼數據庫中的實際內容是什麼,比如別名或別的什麼?

我的理由是讓代碼與專有名稱交互,然後改變數據庫的列名。

回答

1

看看the MSDN documentation on data annotations。您可以使用TableColumn屬性。

[Column(Name="product_id")] 
Int32 ProductId; 

或者,你可以,如果你使用的是T4模板使用fluent APIhere are samples

modelBuilder.Entity<ENTITYNAME>() 
.Property(entity=>entity.ProductId) 
.HasColumnName("product_id") 
+0

是否有一個更通用的方式,然後做每列和表?我有50多張桌子可以做到這一點:S – Ryan 2012-03-19 21:11:15

0

,有一個功能WriteProprety可以修改寫出性能。你可以修改它像這樣:

void WriteProperty(string accessibility, string type, string name, string getterAccessibility, string setterAccessibility) 
{ 
    //Start New Stuff 
    string[] names = name.Split('_'); 
    names = names.ToList().Select(x => char.ToUpper(x[0]) + x.Substring(1)).ToArray(); 
    string fixedName = string.Join("", names); 
//End New Stuff 
#> 
    [Column(Name="<#=name>")] 
    <#=accessibility#> <#=type#> <#=fixedName#> { <#=getterAccessibility#>get; <#=setterAccessibility#>set; } 
<#+ 
} 
+0

嗯,謝謝,明天我要檢查一下 – Ryan 2012-03-19 21:01:30