Open
Description
Alexey Zimarev created an issue — 27th June 2012, 13:15:29:
I use the Linq query
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), OrdreResKunGodkjent = g.Where(x => x.LeveringsType.LeveringsTypeID == 1 && x.OrdreHoldStatus.OrdreHoldStatusID == 1).Sum(x => (double?)x.OrdreLinjeReserve) };
Which translates to the SQL query
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*, cast(sum(ordrelinje0*.OrdreLinjeReserve) as DOUBLE PRECISION) as col_3_0* from OrdreLinjeVerdier ordrelinje0_ where ordrelinje0_.OrdreLinjeReserve>@p0 group by ordrelinje0_.ProduktLagerID; @p0 = 0 <Type: Decimal (0)>
As I can see Where method calls doesn't have any effect on the query when I expect it to produce CASE WHEN in the SQL query. When I use Projections.Conditional with Restrictions.Where it works fine.
Alexander Zaytsev added a comment — 9th March 2013, 10:40:51:
Could you please check if it works in master
Bohdan Makohin added a comment — 12th November 2014, 12:23:40:
Doesn't work as of NHibernate 4.0.0.4000