我遇到的问题是我有多对多的关系,在其中一个表格中会有很多自我引用。
所以基本上一所学校有零个或多个小组,许多小组可以有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
}
i然后尝试按照以下方式修改代码,以便自我引用多对多
public class SchoolGroup
{
public virtual ICollection<SchoolGroupMap> SchoolGroupMaps
public virtual ICollection<SchoolGroup> Parents
public virtual ICollection<SchoolGroup> Children
}
我改变了上下文有很多和一个自动映射表(原谅我,我今天尝试了很多东西,我没有确切的代码)。我收到错误,类上的属性必须匹配。
任何人都可以帮忙。
我想在自引用多对多的情况下创建导航属性。此外,种子的例子将不胜感激
问候
答案 0 :(得分: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;
}