1

我有一个问题,我有一个多对多的关系,并且在其中一张桌子上会有一个多对多的自我引用。

所以基本上一所学校有零个或多个小组,许多小组可以有0个或多个学校。组表将包含一个与其自身多对多的父子,因为一个组可以是另一个组的子,或者它可以没有子,并且该子可以有一个子,一个子也可以有多个父,或者一个实体可以没有父母。

我用 Payload 创建了一个映射表来解决第一个多对多问题。代码片段

public class School
{
  public virtual ICollection<SchoolGroupMap> SchoolGroupMaps
}

public class SchoolGroup
{
  public virtual ICollection<SchoolGroupMap> SchoolGroupMaps
}

public class SchoolGroupMap
{
  public virtual School School
  public virtual SchoolGroup SchoolGroup
}

然后我尝试通过以下方式修改代码以实现自引用多对多

public class SchoolGroup
{
  public virtual ICollection<SchoolGroupMap> SchoolGroupMaps

  public virtual ICollection<SchoolGroup> Parents


  public virtual ICollection<SchoolGroup> Children

}

我用 has many 和一个自动映射表更改了上下文(请原谅我今天尝试了很多事情,我没有确切的代码)。我收到一个错误,类的属性必须匹配。

任何人都可以帮忙吗?

我想在多对多的自引用上创建导航属性。也将不胜感激种子示例

问候

4

1 回答 1

0

你不需要3个实体,让我们一步一步来

第 1 步:与学校和团体的多对多关系

public class School
{
  public virtual ICollection<SchoolGroup> SchoolGroups;
}

public class SchoolGroup
{
  public virtual ICollection<School> Schools;
}

第 2 步:自引用学校组

public class SchoolGroup
{
  public virtual ICollection<School> Schools;
  public virtual ICollection<SchoolGroup> SchoolGroups;
}
于 2014-06-10T03:19:20.763 回答