NH 3.0 GA Linq Group不工作

时间:2010-12-17 13:26:02

标签: c# .net linq nhibernate

在NH 3.0 GA中是否仍然不支持LINQ group by或者我做错了什么? 我的LINQ是:

var q = from p in session.Query<Product>() 
        group p by p.Category into g 
        select new { 
                     Category = g.Key, 
                     TotalValue = g.Sum(p => p.UnitsInStock * p.Price) 
                   };

Witch被转换为以下SQL:

     select category1_.Id as col_0_0_, 
             cast(sum(product0_.UnitsInStock*product0_.Price) as DOUBLE PRECISION) as col_1_0_, 
             category1_.Id as Id0_, 
             category1_.Name as Name0_ 
     from [Product] product0_ 
             left outer join [Category] category1_ on product0_.Category_id=category1_.Id 
     group by category1_.Id 

由于category1_.Name不在group by子句中,因此会生成SqlException。

这是一个已知的错误吗?有解决方法吗? 这个LINQ在EF ​​4中运行良好。

1 个答案:

答案 0 :(得分:2)

NHibernate的group by在通过它进行分组时不够智能地添加实体的所有属性。

另一种方法是仅在选择列表中使用Id,然后在Linq-to-objects中使用session.Load来投影Category实体。