【问题标题】:Group by using linq with NHibernate 3.0通过使用 linq 和 NHibernate 3.0 进行分组
【发布时间】:2011-02-22 08:01:34
【问题描述】:

据我所知,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 中没有实现 group by,或者谁知道我可能做错了什么?

【问题讨论】:

    标签: nhibernate linq-to-nhibernate


    【解决方案1】:

    GroupBy 确实有效,但它是与其他运算符的组合造成了麻烦。

    例如,这是有效的:

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

    但是如果你尝试使用 Skip/Take to page,它会失败。

    简而言之:一些结构还不支持;你可以使用 HQL。我建议你在http://jira.nhforge.org 上打开一个问题

    【讨论】:

    • 谢谢,我想我将不得不发布错误/功能请求,同时使用 HQL。
    猜你喜欢
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2016-06-03
    • 2017-05-13
    • 2016-04-02
    • 2016-08-08
    • 2011-01-13
    • 1970-01-01
    相关资源
    最近更新 更多