문제

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top