【发布时间】:2012-05-28 06:16:30
【问题描述】:
我正在使用 EF4.1 Code First 并尝试创建一些需要链接表的多对多关系表。请看下面代码的小sn-p:
class Event
{
int EventId { get; set; }
ICollection<Contact> Contacts { get; set; }
}
class Contact
{
int ContactId { get; set; }
ICollection<Relation> Relations { get; set; }
}
class Relation
{
int RelationId { get; set; }
string Name { get; set; }
}
所以Contacts对象可以有很多不同类型的Relationship,例如“Mother”、“Father”、“Brother”等。
我需要跟踪某个联系人参加的某种活动,但我想知道他与举办该活动的人的关系。例如,他是事件者的兄弟、父亲还是丈夫?在另一个活动中,同一个人可能会出现,但会是活动者的姐夫。
联系事件是多对多的;与联系人的关系是一对多的。
在 SQL 中,我们只需要创建一个链接表,并在其中包含所有三个属性 ID(EventId、ContactId、RelationId);但是,在 Code First 中,您将如何表示这种关系?
【问题讨论】:
标签: c# entity-framework many-to-many code-first multi-table