이 대답은 정확한 대답 대신 제안입니다.
실제 시나리오에서 이것은 올바른 디자인이 아닙니다. 먼저 모든 배우자는 동일한 사람을 참조하는 배우자도 포함합니다. 예를 들어, 배우자 배우자는 사람 자체입니다. Person과 PeronRelations, PersonRelations는 FromPersonID, ToPersonID, Type 속성을 가지고 있습니다. 이것은 당신이 저장할 수있는 당신이 이점 제공 등
public class Person{
public int PersonID {get;set;}
...
public ICollection<PersonRelations> FromRelations {get;set;}
public ICollection<PersonRelations> ToRelations {get;set;}
}
public class PersonRelations{
..
public int FromPersonID {get;set;}
public int ToPersonID {get;set;}
public RelationType Type {get;set;}
public Person FromPerson {get;set;}
public Person ToPersion {get;set;}
// useful for Employment and Marriage
// durations
public DateTime? Start {get;set;}
public DateTime? End {get;set;}
}
public enum RelationType{
Husband_Wife,
Wife_Husband,
Father_Son,
Son_Father,
Friend_Friend,
Employee_Employer,
Employer_Employee
}
- "> 아버지의 아들 <"- "아버지 <> 아들"- "> 남편 아내 <", - 유형 "> 아내 남편 <"를 지정합니다 관계별로 더 많은 정보를 얻고 많은 쿼리와 함께 양방향으로 탐색 할 수 있습니다.
모든 관계에는 상응하는 반대의 관계가 있습니다. 그리고 제대로 작동하려면 올바른 역관계를 유지하기 위해 추가 로직을 작성해야합니다.
간단한 일대 다 관계이므로 Entity Framework에서 구현하기가 매우 쉽습니다.
도움 주셔서 감사합니다. Ladislav – Joao