【发布时间】:2011-07-29 20:29:42
【问题描述】:
我已经搜索了所有地方,但找不到答案...
首先,我首先使用代码创建了多对多关系,效果很好。每个人可以在多个俱乐部,每个俱乐部可以有多个成员。数据库中已创建ClubPersons 表。
public class Person
{
public int PersonId { get; set; }
public virtual ICollection<Club> Clubs { get; set; }
}
public class Club
{
public int ClubId { get; set; }
public virtual ICollection<Person> Members { get; set; }
}
然后我需要添加俱乐部的创建者,它也是一个人(一对多):
public class Club
{
public int ClubId { get; set; }
public virtual ICollection<Person> Members { get; set; }
public virtual Person Creator { get; set; }
}
执行此操作后,DB 中的 ClubPersons 表已消失,取而代之的是 People 表中的 Club_Id 和 Clubs 表中的 Person_Id 和 Creator_Id。
如您所见,这不起作用,当我尝试添加人员/俱乐部时,它给了我以下错误:
Multiplicity constraint violated. The role 'Person_Clubs_Source' of the relationship 'Test.Models.Person_Clubs' has multiplicity 1 or 0..1.
我的问题是首先在代码中定义这种关系的正确方法是什么?多对多对一
非常感谢
【问题讨论】:
标签: entity-framework many-to-many code-first ef-code-first