2017-03-03 5 views
1

Entity Frameworkコードを使用するまず、ドロップダウンリストのデータを保持するクラスがあります。同じクラスは、メインリストの項目のサブ項目であるレコードを保持します。最終的には、一連の一連のドロップダウンリストが作成されます。データアノテーションを使用してクラスからナビゲーションプロパティを作成する

クラスリンクのナビゲーションプロパティを自分自身に戻す方法を理解しようとしています。問題クラスは、私がドロップダウンリストを設定するために使用しているクラスです。 ComplaintクラスにはIssuesクラスへのリンクもありますが、サブカテゴリへのリンクは必要ありません。

public class Issue 
{ 
    public Issue() 
    { 
     Complaints = new List<Complaint>(); 
     SubIssues = new List<Issue>(); 
    } 

    [Key] 
    public int IssueID { get; set; } 
    public string Name { get; set; } 
    public bool IsSubCategory { get; set; } 

    [ForeignKey("IssueID")] 
    public ICollection<Issue> SubIssues { get; set; } 

    public virtual ICollection<Complaint> Complaints { get; set; } 
    } 

public class Complaint 
{ 
    public Complaint() 
    {    
    }  
    public int ComplaintID { get; set; } 
    public string Name {get; set;} 

    [ForeignKey("IssueID")] 
    public virtual Issue Issue { get; set; }   
} 
+1

バーチャルプロパティをFKとして宣言しないでください。DAの代わりに流暢なAPIを使用すると分かりやすくなります。DAは主にViewModelsに便利です – Valkyrie

答えて

1

私は何か似たようなことをしましたが、実際には子どもに親参照しか持たなかった。いずれにせよ、これはうまくいくはずです。

public class Folder 
{ 
    [Key] 
    public int Id { get; set; } 

    // Some Property 
    public string Name { get; set; } 

    // They foreignkey for Many-side 
    public virtual Folder Parent { get; set; } 

    // The list for One-side (Not tested in my application) 
    public virtual ICollection<Folder> SubFolders { get; set; } 
} 

通常の1対多の関係と同じですが、すべての参照が同じエンティティ内にあります。

関連する問題