NHibernate计数组数

时间:2014-03-28 19:01:30

标签: c# nhibernate group-by hql queryover

我正在使用NHibernate,我需要计算从Group By返回的行数。

重要的是要提到我在group by语句中至少有两列。我想避免使用直接SQL,因为我有不同的数据库。我真的很想用MultiQuery或MultiCriteria发送命令,因为我有很多统计数据我想一次收集所有(虽然不是要求)。我还想避免返回Group By创建的列表,因为它可能非常大。我尝试了多种方法(HQL,QueryOver,Criteria)。不幸的是,似乎没有任何效果。

我有一张像这张图片的桌子: http://i.imgur.com/4HreWWD.png

enter image description here

我希望查询看起来像这样

SELECT count(*) FROM ( SELECT * FROM Table t WHERE t.A = 1 GROUP BY t.B, t.C )

此特定查询将返回3

1 个答案:

答案 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