2012-07-25 3 views
0

나는 세 개의 테이블이 : 내가 nHibernate 수를 사용하여 해당 매핑을 만든nHibernate에서 IQueryOver로 조인을 사용하여 여러 테이블에서 레코드를 가져 오는 방법은 무엇입니까?

User -> UserId, username 

UserGroup -> UserGroupId, GroupName 

UserGroupMember -> UserId, UserGroupId 

을,하지만 난 그룹 이름을 검색하고 특정 그룹에 속하는 사용자 목록을 retreive 할 때, 나는 오류가 발생하고 있지 않다 결과를 검색 할 수 있습니다.

이 문제를 해결할 수있는 사람이 있습니까?

+0

당신이 당신의 매핑을 게시 할 수 없습니다 당신이 사용하려는 쿼리 :

var users = Session.QueryOver<UserGroupMember>() .Fetch(x => x.User).Eager .JoinQueryOver(x => x.UserGroup).Where(x => x.GroupName == groupName) .List().Select(x => x.User) 

해당 쿼리를 사용하여을의 SQL은 다음과 같이 될 것입니다? 이것은 단순한 다 대 다 관계처럼 보입니다. –

답변

0

나는 당신의 문제에 대해서는 잘 모르겠지만 특정 이름을 가진 그룹의 모든 사용자를 선택하기를 원한다고 가정합니다. 나는이 같은 것을 할 것

:

Select m.*, u.* 
from UserGroupMember m 
     inner join UserGroup g on m.UserGroupId=g.UserGroupId 
     inner join User u on m.UserId = u.UserId 
where g.GroupName='groupName' 
관련 문제