据我所知,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,或者谁知道我可能做错了什么?
答案 0 :(得分:2)
GroupBy 工作,但它与其他运营商的组合造成了麻烦。
例如,这有效:
session.Query<Foo>().GroupBy(x => x.Tag).Select(x => x.Count()).ToList();
但是如果您尝试使用Skip / Take页面,则会失败。
简而言之:一些构造尚不支持;你可以使用HQL。我建议你在http://jira.nhforge.org
打开一个问题