任何人都可以解释为什么这个查询将返回12家公司(它有12个UserAccessList子级)
var list = session.QueryOver<Company>()
.Where(x => x.Id == 1) //x => x.Id.IsIn(ids))
.Fetch(l => l.UserAccessList).Eager()
.List<Company>();
答案 0 :(得分:2)
因为在SQL中它会像:
select * from
Companies c left outer join UserAccessLists uac on c.Id == uac.CompanyId
where c.id = id
它在结果中给出重复。如何解决此类问题,您可以阅读here。
答案 1 :(得分:1)
这也有效
var c = session.QueryOver<Company>()
.Future();
session.QueryOver<Company>()
.Fetch(l => l.UserAccessList).Eager()
.Future();
var list = c.ToList();