0

I 다분 할 관계가 많고 테이블 중 하나에서 많은 것을 참조하는 문제가 있습니다.EF 6 코드 우선 다차원 페이로드 및 자체 대다수가 많음

기본적으로 학교에는 0 개 또는 여러 개의 그룹이 있으며 많은 그룹에는 0 개 또는 여러 개의 학교가있을 수 있습니다. 그룹 테이블은 그룹이 다른 그룹의 자식이 될 수 있거나 자식을 가질 수없고 그 자식이 자식을 가질 수 있고 하나의 자식도 많은 부모를 가질 수 있거나 엔터티가 가질 수 없기 때문에 많은 수의 부모 자식을 포함합니다 부모님.

나는 많은 문제를 해결하기 위해 페이로드로 매핑 테이블을 만들었습니다. 코드 조각

public class School 
{ 
    public virtual ICollection<SchoolGroupMap> SchoolGroupMaps 
} 

public class SchoolGroup 
{ 
    public virtual ICollection<SchoolGroupMap> SchoolGroupMaps 
} 

public class SchoolGroupMap 
{ 
    public virtual School School 
    public virtual SchoolGroup SchoolGroup 
} 

그때 (내가이 저를 용서해 많은 및 자동 매핑 테이블이와 내가 컨텍스트를 변경 많은

public class SchoolGroup 
{ 
    public virtual ICollection<SchoolGroupMap> SchoolGroupMaps 

    public virtual ICollection<SchoolGroup> Parents 


    public virtual ICollection<SchoolGroup> Children 

} 

에 많은 참조하는 자체에 대한 다음과 같은 방법으로 코드를 수정 시도 너무 많은 것들을 시도해 봤는데 나는 정확한 코드를 가지고 있지 않다.) 클래스의 속성이 일치해야한다는 오류가 발생했습니다.

아무도 도와 줄 수 있습니까?

많은 것을 자기 참조하는 탐색 속성을 만들고 싶습니다. 또한 시드 예

관련

답변

0

당신은 그것을 단계적으로하자, 3 엔티티를 필요 없어요 감사하겠습니다

1 단계 : 학교 및 그룹

와 많은 관계로 많은
public class School 
{ 
    public virtual ICollection<SchoolGroup> SchoolGroups; 
} 

public class SchoolGroup 
{ 
    public virtual ICollection<School> Schools; 
} 

2 단계 : 자기 참조 학교 그룹

public class SchoolGroup 
{ 
    public virtual ICollection<School> Schools; 
    public virtual ICollection<SchoolGroup> SchoolGroups; 
} 
+0

감사합니다. 작동하는 것처럼 보입니다. 페이로드/매핑 엔티티가있는 두 개의 관련 질문은 미래에 추가 된 필드 등을 추가하려는 경우에 유용합니다. 다음으로 두 번째로이 구조를 사용하면 3 개의 그룹이 중첩되어 있다고 말할 수 있습니다. 그룹 A는 가장 높은 부모이고 그룹 B는 A의 자식이고 그룹 C는 그룹 B의 자식입니다. 각 그룹 수준에 학교 또는 여러 학교가 첨부되어 있습니다. 나는 어떻게 그룹 A에서 모든 수준에 모든 학교를 얻기 위하여 linq 질문을 할 는가 ?? – lesley86

+1

http://msdn.microsoft.com/en-in/data/jj574232.aspx를 살펴보십시오. –