辑阵的EntityFramework,表许多一对多(EntityFramework Mutli-Ta

2019-06-24 16:11发布

我与EF4.1代码首先的工作,我试图创造一些许多一对多的关系表那里表格将需要连接。 请参阅代码beloow的小片段:

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; }
}   

因此,联系人对象可以有许多不同类型的关系,如“母亲”,“父亲”,“兄弟”等。

我需要跟踪某种事件,其中一个联系人参加的,但我想知道他是如何与托管事件的人员。 因此,例如,是他的Eventer的兄弟,父亲或者好丈夫? 在另一种情况下,同一个人可以显示出来,但是是Eventer的妹夫。

事件联系是多到多; 有关联系是一个一对多的。

在SQL中,我们刚刚作出了一个链接表,并拥有所有三个属性标识的有(EVENTID,使用ContactID,RelationId); 然而,在代码首先, 你会如何表现这种关系?

Answer 1:

相同的数据库,你必须创建一个映射实体就像喜欢在数据库映射表ContactEvents。

class Event
{
  int EventId { get; set; }
  ICollection<ContactEvent> ContactEvents { get; set; }
}

class ContactEvent
{
  int EventId {get;set;}
  int ContactId {get;set;}
  public virtual Event Event {get; set;}
  public virtual Contact Contact {get;set;}
}

class Contact
{
   int ContactId { get; set; }
   ICollection<ContactEvent> ContactEvents { get; set; }
   ICollection<Relation> Relations { get; set; }
}

class Relation
{
  int RelationId { get; set; }
  string Name { get; set; }
  public virtual Contact Contact {get; set}
}   


文章来源: EntityFramework Mutli-Table Many-to-Many