使用linq和NHibernate 3.0进行分组

时间:2011-02-21 18:45:36

标签: nhibernate linq-to-nhibernate

据我所知,group by仅在NHibernate 3.0中添加,但即使使用版本3,我也无法分组工作。

我尝试过以下查询:

  

Session.Query()。的GroupBy(gbftr   => gbftr.Tag).OrderByDescending(obftr => obftr.Count())。Take(count)。ToList();

但是我收到以下错误:

Antlr.Runtime.NoViableAltException'. [. OrderByDescending (. GroupBy (NHibernate.Linq.NhQueryable `1 [Forum.Core.ForumTagRelation] Quote ((gbftr,) => (gbftr.Tag)),), Quote ((obftr,) => (. Count (obftr,))),)]

有没有人知道我是否可能会弄错,并且在NHibernate 3.0中没有实现group by,或者谁知道我可能做错了什么?

1 个答案:

答案 0 :(得分:2)

GroupBy 工作,但它与其他运营商的组合造成了麻烦。

例如,这有效:

session.Query<Foo>().GroupBy(x => x.Tag).Select(x => x.Count()).ToList();

但是如果您尝试使用Skip / Take页面,则会失败。

简而言之:一些构造尚不支持;你可以使用HQL。我建议你在http://jira.nhforge.org

打开一个问题
相关问题