2012-11-17 44 views
0

我想知道是否有關於EF 5或更新版本中的數據註釋的一些新功能。我做的是數據庫優先,所以據我所知,我必須始終操縱T4,這很亂,因爲每個EF-Version MS都會更改默認的T4。因此,有人可以告訴我,如果有一些替代這樣的事情:EF 5中的數據註釋無代碼優先

操縱T4:

<#=codeStringGenerator.UsingDirectives(inHeader: false, includeAnnotations: true)#> 
[MetadataType(typeof(<#=code.Escape(entity)#>Metadata))] 
<#=codeStringGenerator.EntityClassOpening(entity)#> 

結果類樣品,如果類被命名爲「地址」:

[MetadataType(typeof(AddressMetadata))] 
public partial class Address 
{ 

其他類用於與生成的相同名稱空間中的註釋「地址」級別:

public class AddressMetadata 
{ 

    [Display(Name = "Straße")] 
    public string Street; 

    [Display(Name = "Land")] 
    public string Country; 

    [Display(Name = "PLZ")] 
    public string Zip; 

    [Display(Name = "Stadt")] 
    public string City; 
} 

這就是我今天就做。

回答

1

您不需要更改生成的代碼。您可以將夥伴類添加到部分類。然後,當代碼被重新生成時,你不會失去任何東西。

+0

是的,但後來我必須手動對數據庫更新作出反應。所以,如果我使用「更新數據庫...」,我必須去分部類並將其同步到生成的類。 – sprinter252

+0

我不明白你的意思。 –

+0

好的,當我在示例代碼中實現我的類AddressMetadata時,問題一切正常。現在想象一下,我在數據庫表中添加一個新的「HouseNumber」列。現在,當我更新EF模型時,我的AddressMetadata類將無法識別更改。對?我的問題是,我如何在不編輯T4的情況下自動執行這些更改。 – sprinter252