2016-08-05 110 views

回答

0

當您對EF使用數據庫優先方法時,所有類都生成爲partial類。這意味着您可以將定義分散在兩個或更多源文件中。 如果更改生成類,它將被覆蓋

假設你有一個分部類的EF生成的用戶作爲

public partial class User 
{ 
    public string Username { get; set; } 
    public string Telphone { get; set; } 
} 

現在使用DataAnnotations上的User的屬性,你會在同一個命名空間創建具有相同名稱的新源文件,使使用MetadataType屬性爲:

[MetadataType(typeof(UserMetaData))] 
public partial class User 
{ 
    public string Username { get; set; } 
    public string Telphone { get; set; } 
} 

public class UserMetaData 
{ 
    [Required] 
    [Display(Name = "User name")] 
    public string Username { get; set; } 

    [DataType(DataType.PhoneNumber)] 
    [Display(Name = "Telephone number")] 
    public string Telephone { get; set; } 
} 

正如你可以看到我用MetadataType在指定的元數據類與數據模型類相關聯的第二個例子屬性。

+0

這是可能去使用t4模板生成它嗎? – AggieR

+0

@AggieR你也可以看看** [this](https://t4metadatatemplate.codeplex.com/)** codeplex for t4模板項目 – Izzy