实体框架6:关联孩子'采集

时间:2014-06-16 20:56:36

标签: c# entity-framework entity-framework-6

我们说我的桌子看起来像这样:

Person
{
   int Id,
   string Name,
   int? ParentId
}

在实体框架中,我可以添加一个新属性Person Parent,我可以告诉实体框架应该如何映射:

HasOptional(a => a.Parent).WithMany().HasForeignKey(c => c.ParentId);

我的问题是,在这种情况下是否有办法添加:

ICollection<Person> Children { get; set; }

哪个集合将填充所有PersonParentId当前Person

1 个答案:

答案 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);