我们说我的桌子看起来像这样:
Person
{
int Id,
string Name,
int? ParentId
}
在实体框架中,我可以添加一个新属性Person Parent
,我可以告诉实体框架应该如何映射:
HasOptional(a => a.Parent).WithMany().HasForeignKey(c => c.ParentId);
我的问题是,在这种情况下是否有办法添加:
ICollection<Person> Children { get; set; }
哪个集合将填充所有Person
行ParentId
当前Person
?
答案 0 :(得分:1)
为您的孩子添加一个属性,如下所示:
public ICollection<Person> { get; set; }
然后像这样配置映射:
HasMany(p => p.Children).WithOptional(p => p.Parent);
然后,您只需使用延迟加载,急切加载(Children
或显式加载即可访问Include(p => p.Children)
属性。
如果你没有导航属性仍然可以做到,但不太明显。
MyContext.Person.Where(p => p.ParentId = parentId);