-
12-12-2019 - |
题
我首先使用ef4.1代码,我正在尝试创建一些多对多的关系表,其中需要链接表。请参阅Code 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; }
}
.
所以联系人对象可以有许多不同类型的关系,例如“母亲”,“父亲”,“兄弟”等。
我需要跟踪联系人的某种活动,但我想知道他是如何与托管活动的人有关。例如,他是最终的兄弟,父亲还是丈夫?在另一个活动中,同一个人可以出现,但是是最终的姐夫。
联系人是多对多;与联系人的关系是一对多。
在SQL中,我们只会制作一个链接表,并拥有那里的所有三个属性ID(EventId,Conftid,RelationID);但是,在代码中,如何代表这种关系?
解决方案
与数据库相同,您必须与数据库中的映射表一样创建映射实体。
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}
}
. 不隶属于 StackOverflow