Linq到NHibernate和Group By

时间:2009-12-31 01:18:50

标签: nhibernate linq-to-nhibernate

我正在使用NHibernate的当前Linq提供程序(版本2.1)。

我有两个实体:VideoGame和GameDeveloper,多对一 他们之间的关系。 我正在尝试执行此类查询,该查询计算数量 每个游戏开发者都有的视频游戏:

from v in session.Linq<VideoGame>()
group by v.Developer into developerGroup
select new {developerGroup.Key.Name, Count = developerGroup.Count()}

枚举此查询会导致异常 - “无法解决 属性实体的关键。视频游戏“。 现在,如果我按v.Developer分组。它可以工作,但我无法选择 命名列并在结果中显示它。我可以分组 v.Developer.Name,但它似乎不对,因为两个开发人员可能 具有相同的名称。

我知道目前的Linq提供商不再开发,但是 我将不胜感激任何关于这种情况的建议。

1 个答案:

答案 0 :(得分:1)

怎么样

from v in session.Linq<VideoGame>()
group by v.Developer into developerGroup
select new {key = developerGroup.Key, count = developerGroup.Count()}

<击>

在{2.1} NHibernate LINQ提供程序中似乎已经破坏了group by。前一段时间史蒂夫·斯特朗blogged group bytrunk,所以如果你有足够的冒险精神并且不愿意等到3.0,那么这可能是一种选择。

或者您可以使用像这样的强力解决方案

from v in (from vg in session.Linq<VideoGame>() select vg).ToList()
group by v.Developer into developerGroup
select new {developerGroup.Key.Name, Count = developerGroup.Count()};