NHIbernate выборка, возвращающая несколько родительских объектов - PullRequest
1 голос
/ 12 августа 2011

Может кто-нибудь объяснить, почему этот запрос вернул бы 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>();

Ответы [ 2 ]

2 голосов
/ 12 августа 2011

Потому что в SQL это будет что-то вроде:

select * from 
Companies c left outer join UserAccessLists uac on c.Id == uac.CompanyId
where c.id = id

И это дает дубликаты в результатах.Как исправить такие проблемы вы можете прочитать здесь .

1 голос
/ 12 августа 2011

Это также работает

var c = session.QueryOver<Company>()
        .Future();

 session.QueryOver<Company>()
        .Fetch(l => l.UserAccessList).Eager()
        .Future();

var list = c.ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...