C# 实体框架6:关联一个';儿童';收集

C# 实体框架6:关联一个';儿童';收集,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,假设我有一张这样的桌子: Person { int Id, string Name, int? ParentId } 在entity framework中,我可以添加一个新属性Person Parent,并告诉entity framework应该如何映射该属性: HasOptional(a => a.Parent).WithMany().HasForeignKey(c => c.ParentId); 我的问题是,在这个场景中有没有一种方法可以添加以下内容: IC

假设我有一张这样的桌子:

Person
{
   int Id,
   string Name,
   int? ParentId
}
在entity framework中,我可以添加一个新属性
Person Parent
,并告诉entity framework应该如何映射该属性:

HasOptional(a => a.Parent).WithMany().HasForeignKey(c => c.ParentId);
我的问题是,在这个场景中有没有一种方法可以添加以下内容:

ICollection<Person> Children { get; set; }
ICollection子项{get;set;}

其中集合将填充所有具有此当前
人员的
ParentId
行,请为您的孩子添加一个属性,如下所示:

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

我们是否缺少将集合与ParentId列联系起来的内容?这样做了:HasMany(p=>p.Children)。WithOptional(p=>p.Parent)感谢您的编辑。我把它背下来写了,忘了包含lambda。在许多情况下,导航属性可以由coventons确定,但在这种情况下它是不可能的,因为它没有命名“人”。