实体框架复合密钥(与有效负载的多对多关系)

时间:2011-05-02 20:53:20

标签: entity-framework foreign-keys primary-key composite-key compound-key

我有这样的数据库表:

diagram of three database tables: Person, Membership, and Team

一个人可能是许多团队的成员。一个团队可能有很多成员。每个人都可以在团队中拥有一个职位(想想职位)。

我尝试使用ADO.NET Entity Framework进行设置并获取错误:

  

错误3021:映射问题   片段从行开始...每个   表格中的以下列   成员资格映射到多个   概念方面属性:   Membership.PersonId映射到   < MembershipPerson.Membership.PersonId,   MembershipPerson.Person.Id>

  

错误3021:映射问题   片段从行开始...每个   表格中的以下列   成员资格映射到多个   概念方面属性:   Membership.TeamID映射到   < MembershipTeam.Membership.TeamId,   MembershipTeam.Team.Id>

Membership 实体的主键是两个外键的复合键。我认为这就是问题所在。

我必须做些什么?

1 个答案:

答案 0 :(得分:1)

如果在属性上使用独立关联,则会发生这种情况,该属性既是主键,也是外键的一部分。 EFv4引入了外键关联(the difference is described here),并在实体you must define foreign key association中公开了外键。定义参照约束后,在Mapping details窗口中删除独立关联的映射。