据我所知,group by 仅在 NHibernate 3.0 中添加,但即使使用版本 3,我也无法使用 group by。
我尝试执行以下查询:
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 中没有实现分组依据,或者谁知道我可能做错了什么?
最佳答案
GroupBy 确实有效,但它是与其他运算符的组合造成了麻烦。
例如,这个有效:
session.Query<Foo>().GroupBy(x => x.Tag).Select(x => x.Count()).ToList();
但是如果您尝试使用 Skip/Take to page,它会失败。
简而言之:一些构造尚不支持;你可以为那些使用 HQL。我建议你在 http://jira.nhforge.org 打开一个问题
关于nhibernate - 通过将 linq 与 NHibernate 3.0 结合使用进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069925/