У меня есть запрос NHibernate, который выглядит следующим образом:
var query = Session.CreateQuery(@"
select o
from Order o
left join o.Products p
where
(o.CompanyId = :companyId) AND
(p.Status = :processing)
order by o.UpdatedOn desc")
.SetParameter("companyId", companyId)
.SetParameter("processing", Status.Processing)
.SetResultTransformer(Transformers.DistinctRootEntity);
var data = query.List<Order>();
Я хочу реализовать подкачку для этого запроса, поэтому я возвращаю только x строк вместо всего набора результатов.
Я знаю о SetMaxResults()
и SetFirstResult()
, но из-за left join
и DistinctRootEntity
это может вернуть менее x заказов.
Я также пытался "select distinct o"
, но созданный для этого sql (используя диалект sqlserver 2008), похоже, игнорирует distinct
для страниц после первой (я думаю, this эта проблема).
Каков наилучший способ сделать это?