我有一個NHibernate的查詢,看起來像這樣:如何實現分頁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"
爲好,但這是生成(使用SQLSERVER 2008方言)的SQL似乎忽略distinct
的第一個頁面後(我認爲this是問題)。
完成此操作的最佳方法是什麼?
'存在'的想法很有趣......我會試試看。 – 2010-03-26 23:02:00