我有三张桌子:
User -> UserId, username
UserGroup -> UserGroupId, GroupName
UserGroupMember -> UserId, UserGroupId
我已经使用nHibernate创建了相应的映射,但是当我尝试搜索groupname并检索属于特定组的用户列表时,我收到错误而无法检索结果。
有人可以帮我解决这个问题。
答案 0 :(得分: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将是这样的:
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'