2012-02-09 5 views
1

ここ言語ICollection <子エンティティ>の作成方法。どのよう

public partial class WebSite 
    { 
     public WebSite() 
     { 
      this.WebSiteLanguages = new HashSet<WebSiteLanguage>(); 
     } 

     public int Id { get; set; } 
     public Nullable<int> WLUserID { get; set; } 
     public string DomainName { get; set; } 
     public Nullable<bool> IsActive { get; set; } 
     //[Required]  
     public virtual ICollection<WebSiteLanguage> WebSiteLanguages { get; set; } 
    } 

マイWebSiteLanguage子クラスのリストが含まれています、私のマスターエンティティは、私の見解で

public partial class WebSiteLanguage 
    { 
     public int Id { get; set; } 
     public string LanguageName { get; set; } 
     public Nullable<int> WebSiteID { get; set; } 
     public bool IsDefault { get; set; } 

     public virtual WebSite WebSite { get; set; } 
    } 

です私が欲しいと、私はAJAX呼び出し内の多くの言語を追加することができます。

enter image description here

、私の質問は:

パブリック仮想いるICollectionのWebSiteLanguagesを{得ることを確認することが可能です。 が設定されました。 }

必須です。作成されたWebSiteLanguageがない場合、Webサイトエンティティは無効です。

ありがとうございます。

+0

カスタム検証属性を開発します。私の意見では、これは最も再利用可能な解決策です。 – hival

答えて

0

投稿ごとにhttp://blogs.msdn.com/b/adonet/archive/2011/05/27/ef-4-1-validation.aspxのナビゲーションプロパティは、関連付けられたFK値を設定できるため、ファセットの検証から除外され、ナビゲーションプロパティはSaveChanges()に設定されます。ナビゲーションプロパティは、あなたができるnullでないことを検証するには:

  • は、上記
  • オーバーライドを行いIValidatableObjectインタフェースを実装し、それを検証するカスタム属性(それはタイプまたはプロパティ上にある)
  • を作成DbContext.ValidateEntityそれはプロパティがnullでなく、このような場合には、他のプロパティを検証するために)(base.ValidateEntityを呼び出すことを検証するようにメソッドを保護された(詳細については、これを参照してください。http://blogs.msdn.com/b/adonet/archive/2010/12/15/ef-feature-ctp5-validation.aspx

第三ソリューションはそうt oきれいになる。

関連する問題