2016-04-26 9 views
2

私は、Entity Frameworkに関する知識が限られていて、オブジェクトの関係でいくつかの問題が発生しています。プライマリキーのC#EFナビゲーションプロパティ

  • 一対多リセラーとメールの間: 基本的にリンクされているメールの一覧私は、次の2つの関係を達成しようとしている

    public class Reseller 
    { 
        [Key] 
        public int Id { get; set; } 
        public string Name { get; set; } 
        public ResellerLevel? ResellerLevel { get; set; } 
        public ResellerLevel? HosterLevel { get; set; } 
    
        public ResellerMail Mail { get; set; } 
        public virtual ObservableCollection<ResellerMail> Mails { get; set; } 
    
        public Reseller() 
        { 
        Mails = new ObservableCollection<ResellerMail>(); 
        } 
    } 
    
    public class ResellerMail 
    { 
        [Key, ForeignKey("Reseller")] 
        public int Id { get; set; } 
        public string Name { get; set; } 
        public string Mail { get; set; } 
        public string Display 
        { 
        get 
        { 
         return String.Format("{0} <{1}>", Name, Mail); 
        } 
        } 
    
        public virtual Reseller Reseller { get; set; } 
    } 
    

    :私は、次のエンティティを持っていますリセラー。ドロップダウンリストから

  • 一対一の関係 再販業者の選択したメール、。メールのIDだけでもかまいませんが、ナビゲーションプロパティを添付したいと思います。

どうすればこのようなことになりますか?

+0

上記の設定ですべてのデータ関係が正常に動作していますか? – Sampath

答えて

0

まず、お使いのモデルではObservableCollectionを使用しないでください。このタイプはUIとのやりとりに使用されるためです(モデルから直接行うべきではありません)。二つの質問については

:1の場合

: ただResellerEmailの仮想コレクションを設定します。

public class Reseller 
{ 
    [Key] 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public ResellerLevel? ResellerLevel { get; set; } 
    public ResellerLevel? HosterLevel { get; set; } 

    public virtual ICollection<ResellerMail> Mails { get; set; } 

    public Reseller() 
    { 
    Mails = new ICollection<ResellerMail>(); 
    } 
} 

をNO2の場合:これは、あなたのモデルは次のようになりますを意味します。 ForeignKeyの下にタイプResellerのオブジェクトを持つことができます。

[Key, ForeignKey("Reseller")] 
    public int Id { get; set; } 
    public Reseller Reseller { get; set; } 
関連する問題