实体框架6:关联'Child'收集

本文关键字:Child 收集 关联 框架 实体 | 更新日期: 2023-09-27 18:08:48

假设我有一个这样的表:

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

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

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

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

ICollection<Person> Children { get; set; }

集合中ParentId为当前Person的所有Person行填充在哪里?

实体框架6:关联'Child'收集

为您的孩子添加一个属性,像这样:

public ICollection<Person> { get; set; }

然后这样配置映射:

HasMany(p => p.Children).WithOptional(p => p.Parent);

那么你只需要使用延迟加载,急切加载(Include(p => p.Children)或显式加载)访问Children属性。

如果你没有导航属性,仍然可以这样做,但不那么明显。

MyContext.Person.Where(p => p.ParentId = parentId);