通过将linq与NHibernate 3.0结合使用 [英] Group by using linq with NHibernate 3.0

查看:62
本文介绍了通过将linq与NHibernate 3.0结合使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

据我所知groupby仅在NHibernate 3.0中添加,但是即使使用版本3,我也无法使group by正常工作.

As far as I know group by has only been added in NHibernate 3.0, but even when using version 3, I can't get group by to work.

我尝试执行以下查询:

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

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中未实现分组依据,还是知道我可能在做错什么的人?

Does anyone have an idea if I might be mistaken, and group by isn't implemented in NHibernate 3.0, or who knows what I might be doing wrong?

推荐答案

GroupBy 可以工作,但是与其他运算符的组合却引起麻烦.

GroupBy does work, but it's the combination with other operators that is causing trouble.

例如,这有效:

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

但是,如果您尝试使用跳过/跳转至页面",则会失败.

But if you try to use Skip/Take to page, it fails.

简而言之:尚不支持某些构造.您可以对这些使用HQL.我建议您在 http://jira.nhforge.org

In short: some constructs are not supported yet; you can use HQL for those. I suggest you open an issue at http://jira.nhforge.org

这篇关于通过将linq与NHibernate 3.0结合使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆