[NHibernate]获取分组查询的记录总数
生活随笔
收集整理的這篇文章主要介紹了
[NHibernate]获取分组查询的记录总数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
項目使用NHibernate2.1.0。今天遇到一個很鬧心的問題,我們有一個帶分組的分頁查詢
var q = Session.CreateQuery(@"select t.PMM,t.RetailPrice, ...from WarehouseDetail as twhere ...group by t.PMM,t.RetailPrice").SetFirstResult(start).SetMaxResults(limit);由于UI控件的需要,還得把符合上面那個查詢條件的總的記錄數查出來,但是下面這個語句不行
long total = Session.CreateQuery(@"select count(*)from WarehouseDetail as twhere ...group by t.PMM,t.RetailPrice").UniqueResult<long>();因為使用了分組之后,上面那個HQL返回的是每個分組的記錄數,而不是總的記錄數,所以上面那個語句會報“query did not return a unique result: 3”的異常,意思是查詢結果是3條數據。
按照以往寫普通SQL語句的思路,我們會想把它改成下面這種子查詢的形式
但是很可惜,NHibernate還不支持這種from子查詢。
另一種寫法,是使用count distict
可是TNND NHibernate 居然不支持在count()里面進行字符串連接操作!我詛咒NHibernate項目組一輩子買方便面都只有調料包!!
最后沒法子,搞了一個有點無厘頭的語句
?
轉載于:https://www.cnblogs.com/1-2-3/archive/2010/03/12/nhibernate-group-total-rowcount.html
總結
以上是生活随笔為你收集整理的[NHibernate]获取分组查询的记录总数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebSen!NT的行业分类说明
- 下一篇: 2400g核显性能(不明白2400g这样