0

私はカテゴリクラスを持ち、親カテゴリとしてそれ自身を参照できます(レベルは1つだけです)。Entity Frameworkを使用したASP.NET MVC 3の自己参照モデル

Entity Frameworkを使用してdbContextを使用してデータを取得すると、親関係はロードされません。それを達成するにはどうすればいいですか? は、ここで私はdbcontextを使用してすべてのカテゴリを取得するとき、ParentCategoryがnullのクラス

public class Category 
{ 
    [Key] 
    public int CategoryID { get; set; }  
    [Display(Name="Category Name")] 
    public string CategoryName { get; set; } 

    public int ParentCategoryID { get; set; } 
    public virtual Category ParentCategory { get; set; } 

} 

であることは同じIDを持つ別のカテゴリクラスに参加していなかったC/B。

db.Category.ToList()メソッドをどのように変更して、親子関係に同時に参加するように教えてもらえますか?ありがとう

+0

は、あなたのマッピングクラスを置くことはできますか? – IamStalker

答えて

0

ParentCategoryIDは、ルートカテゴリに親がなく、EFがnullを割り当てる必要があるため、null可能でなければなりません。

public class Category 
{ 
    [Key] 
    public int CategoryID { get; set; }  
    [Display(Name="Category Name")] 
    public string CategoryName { get; set; } 

    public int? ParentCategoryID { get; set; } 
    public virtual Category ParentCategory { get; set; } 

} 
1

この

public class Category 
{ 
    [Key] 
    public int CategoryID { get; set; }  

    [Display(Name="Category Name")] 
    public string CategoryName { get; set; } 

    public int? ParentCategoryID { get; set; } 
    public virtual Category ParentCategory { get; set; } 

} 

そして、あなたのContextクラスのように試してみてください、

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
    modelBuilder.Entity<Category>(). 
     HasOptional(e => e.ParentCategory). 
     WithMany(). 
     HasForeignKey(m => m.ParentCategoryID); 
    } 
関連する問題