2012-12-04 2 views
0

확인 막혔습니다. "USER"엔티티, "CLUB"엔티티 및 "MEMBERSHIP"엔티티가있는 모델이 있습니다. "MEMBERSHIP"엔티티는 "USER"와 "CLUB"의 연관입니다. 사용자는 많은 클럽을 가질 수 있고 클럽은 많은 사용자를 가질 수 있습니다.DBContext 및 탐색 속성

특정 사용자에 대한 클럽 목록을 얻는 방법을 파악할 수 없습니다.

이 쿼리를 작성하는 좋은 방법을 찾을 수 없습니다.

네비게이션 속성이 컬렉션이기 때문에 문제가있는 것처럼 보입니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니다, 감사합니다.

답변

1

Membership에 따라 다릅니다. 표는 사용자 ID와 ClubId을 가지고 단순한 협회의 경우, Membership 개체는 생성되지 않습니다, 당신은이 방법으로 조회한다 : 협회,하지 후 Membership 엔티티가 생성됩니다 간단 경우

var clubs = context.Users 
        .Where(u => u.Id == id) 
        .SelectMany(u => u.Clubs); 

을하고, 다음과 같이 회원 자격을 통해 클럽을 탐색해야합니다.

var clubs = context.Users 
        .Where(u => u.Id == id) 
        .SelectMany(u => u.Memberships) 
        .Select(m => m.Club);