我在获得可选的一对多关系时遇到问题。
我的模型是:
public class Person
{
public int Identifier { get; set; }
...
public virtual Department Department { get; set; }
}
public class Department
{
public int Identifier { get; set; }
...
public virtual IList<Person> Members { get; set; }
}
我想为 a 分配零或Department
一Person
。分配后,Person
应显示在 的Members
-List 中Department
。
我正在Person
使用 Fluent API 进行配置,如下所示:
HasKey(p => p.Identifier);
HasOptional(p => p.Department).WithMany(d => d.Members);
Department
还通过配置而不是尝试了另一种方式Person
:
HasMany(d => d.Members).WithOptional(p => p.Department);
然而,两种方式我都得到了例外:
无法确定“人员”和“部门”类型之间关联的主要结束。此关联的主体端必须使用关系流式 API 或数据注释显式配置。
当同时配置两者时,我得到:
在“人员”类型上声明的导航属性“部门”已配置有冲突的多重性。
使用与另一种实体类型相同的配置是可行的Person
,但是该实体类型引用自身。
如何正确配置这种关系?