엔티티 프레임 워크 다중 테이블 다수 -
-
12-12-2019 - |
문제
ef4.1 코드를 먼저 작업하고 테이블을 링크해야 할 테이블이 필요할 때 많은 다수의 관계 테이블을 만들려고 노력하고 있습니다.코드 벨로우의 작은 스 니펫을 참조하십시오 :
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 객체는 "어머니", "아버지", "형제"등과 같은 다양한 유형의 관계를 가질 수 있습니다.
연락처가있는 일종의 사건을 추적해야하지만, 그가 이벤트를 주최하는 사람과 어떻게 관련이 있는지 알고 싶습니다.예를 들어, 그 사건의 형제, 아버지 또는 남편 이었습니까?다른 행사에서, 같은 사람이 나타날 수 있지만 이벤트의 형제가 될 수 있습니다.
연락을 취할 이벤트는 다수로입니다.접촉과의 관계는 일대일입니다.
SQL에서 우리는 링크 테이블을 만들었고 세 가지 속성 ID가 모두 (eVerID, contactId, 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