2010-12-17 7 views
0

LINQ group byはまだNH 3.0 GAでサポートされていませんか、何か間違っていますか? 私のLINQは、次のとおりです。category1_.NameはこのSQLExceptionを生成group by句にないためNH 3.0 GA Linqグループが動作しない

 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 

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) 
        }; 

魔女は、次のSQLに変換されます。

これは既知のバグですか?回避策はありますか? このLINQはEF 4でうまく動作します。

答えて

2

NHibernateのgroup byは、グループ化するときにエンティティのすべてのプロパティを追加するほどスマートではありません。

代わりに、選択リストでのみIdを使用し、Linq-to-objectsにsession.Loadを使用してCategoryエンティティを投影することもできます。

+0

ありがとう、これは私がgroup byが働いていなかった理由を発見した最初の情報です。 –

+0

私はここで答えを見つけました:http://blog.patearl.net/2010/12/nhibernate-30-linq.html:NH3 Linqはまだベータ版では完成していません... –

関連する問題