我正在使用NHibernate,我需要计算从Group By返回的行数。
重要的是要提到我在group by语句中至少有两列。我想避免使用直接SQL,因为我有不同的数据库。我真的很想用MultiQuery或MultiCriteria发送命令,因为我有很多统计数据我想一次收集所有(虽然不是要求)。我还想避免返回Group By创建的列表,因为它可能非常大。我尝试了多种方法(HQL,QueryOver,Criteria)。不幸的是,似乎没有任何效果。
我有一张像这张图片的桌子: http://i.imgur.com/4HreWWD.png
我希望查询看起来像这样
SELECT count(*) FROM ( SELECT * FROM Table t WHERE t.A = 1 GROUP BY t.B, t.C )
此特定查询将返回3
答案 0 :(得分:0)
使用Linq
你可以尝试这样的事情:
var result = from t in Table // <-- session.Query<Table>() to get queryable
where t.A == 1
group t by new { t.B, T.C } into g
select g.Count();
请记住在cs文件中添加名称空间NHibernate.Linq
。