Group by using linq with NHibernate 3.0

2.5k Views Asked by At

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.

I have tried to do the following query:

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

But I receive the following error:

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

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?

1

There are 1 best solutions below

1
On BEST ANSWER

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

For example, this works:

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

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

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