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クエリに影響を与えません。
バグのようですか、何かが足りませんか?