问题描述
|
我正在尝试使用EF Code First映射一个相当“标准”的类别模型
public class Category
{
public int ID { get; set; }
public int ParentID { get; set; }
public string Name { get; set; }
public Category ParentCategory { get; set; }
public List<Category> ChildCategories { get; set; }
}
我有一些类似的东西:
modelBuilder.Entity<Category>()
.HasOptional(t => t.ParentCategory)
.WithMany()
.HasForeignKey(t => t.ParentCategoryID)
.WillCascadeOnDelete();
但这似乎并不能解决ChildCategories?
我想念什么吗?
为了避免重复的问题参数,我遵循以下步骤,但是并没有完全回答我的特定查询:
实体框架层次结构的代码优先映射
实体框架CTP5代码优先映射-同一表中的外键
解决方法
将您的实体更改为
public class Category
{
public int ID { get; set; }
public int? ParentID { get; set; }
public string Name { get; set; }
public virtual Category ParentCategory { get; set; }
public virtual IList<Category> ChildCategories { get; set; }
}
使ParentID
可以为空,并允许ChildCategories
延迟加载,使其为虚拟。