如何在实体框架(.Net 4.0)中使用导航属性作为主键?

时间:2009-06-23 12:55:12

标签: entity-framework .net-4.0 primary-key many-to-many entity-relationship

我正在尝试使用VS2010 / .Net 4.0在Entity Framework中引入的 Model First 方法,现在我真的不知道如何做到这一点。我从以下实体开始:

Contact                           Event
*******                           *****
Id (Int32, not null, pk)          Id (Int32, not null, pk)
Name (Name, not null)             Name (String, not null)
Address (Address, not null)       Duration (Duration, not null)
Email (String)
Phone (String)

其中NameAddressDuration是我定义的复杂类型。

现在,我想添加一个RSVP实体,它可以作为从ContactsEvents的多对多映射,但也可以在复杂类型中保存一些额外信息我打电话给Payment。该表可能看起来像这样:

RSVP
****
ContactId (int, not null, pk)
EventId (int, not null, pk)
Payment_Date (datetime, not null)
Payment_Amount (double, not null)

当尝试在模型设计器中构造此实体时,我想通过向相应表添加多对多关系来添加ContactIdEventId字段,但是当我这样做时不能选择两个字段作为表的主键(或实体的实体键)。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

实际上,我认为您不必为RSVP创建单独的实体,只需要在两个实体之间建立多对多的关系。

如果有帮助,请告诉我..

答案 1 :(得分:0)

我认为当您将其他数据点添加到链接表时,它比两个实体之间的简单多对多关系变得更复杂。一旦链接拥有自己的数据,就不能再将其抽象为纯粹的导航属性。