2

NHibernateLinqはグループ化された.Whereメソッド条件を理解していないようです。私は次のコードを取得しました:

 var q = from o in session.Query<OrdreLinjeVerdier>()
     where o.OrdreLinjeReserve > 0
     group o by o.ProduktLager.ProduktLagerID into g
     select new 
     { 
         ProduktLagerID = g.Key,
         OrdreRes = g.Sum(x => x.OrdreLinjeReserve),
         OrdreResUtenSpesial = 
           g.Where(x => x.LeveringsType.LeveringsTypeID == 1)
            .Sum(x => (double?)x.OrdreLinjeReserve)
     };

そして、それはデータベースに次のようになります。

select ordrelinje0_.ProduktLagerID as col_0_0_, 
    cast(sum(ordrelinje0_.OrdreLinjeReserve) as DECIMAL(19,5)) as col_1_0_,
    cast(sum(ordrelinje0_.OrdreLinjeReserve) as DOUBLE PRECISION) as col_2_0_ 
  from OrdreLinjeVerdier ordrelinje0_ 
  where ordrelinje0_.OrdreLinjeReserve>@p0 
  group by ordrelinje0_.ProduktLagerID;

  @p0 = 0

したがって、基本的にg.Whereの条件はSQLクエリに影響を与えません。

バグのようですか、何かが足りませんか?

4

1 に答える 1

0

私にはバグのように見えます。

これが最新の安定したビルド(今日の3.3.1)で発生することを確認した後、https://nhibernate.jira.comで問題を作成してください

于 2012-06-27T16:51:49.843 に答える