2011-09-13 57 views
2

如果我在我的實體類中添加[Required]然後不顯眼的驗證工作正常。客戶端驗證在MVC 3數據庫第一

[Required]不加,我使用數據庫第一(*。EDMX)生成我的實體類。當我更新我的EDMX

如果我手動添加[必需]在我的實體的財產,像

[Required] 
public int {get;set;} 

[Required]將刪除。

所以我的問題是我如何執行客戶端驗證,如果我首先在EF中使用數據庫。

回答

3

創建你的實體部分類,並使用MetadataType屬性。看下面的例子:

[MetadataType(typeof(MyEntity.Metadata))] 
public partial class MyEntity 
{ 
    private sealed class Metadata 
    { 
     [Required(ErrorMessage = "* required")] 
     public string MyRequiredField { get; set; } 
    } 

    // Add other similar properties here... 
} 

這個類將不會受設計器生成代碼的更改影響。

+0

,使之清楚,這裏myEntity所是第一個生成的類數據庫,[這](http://www.elevenwinds.com/data-validation-in-asp-net-mvc-database-first)也幫我 – stom

0

這是ado.net團隊的問題。我想,當你首先使用數據庫EF時,你的域模型會繼承數據庫的約束,因爲數據庫設計是你的應用程序邏輯的主。