Я пытаюсь сделать аналог этого кода SQL
SELECT
ID
SUM(CASE WHEN myProperty = 2 THEN 1 ELSE 0 END) as nbRowWithValueOf2,
SUM(CASE WHEN myProperty = 3 THEN 1 ELSE 0 END) as nbRowWithValueOf3
FROM Foo
GROUP BY ID
с помощью Nhibernate.
До сих пор я пытался
queryable = queryable
.Select(
Projections.Group<Foo>(c => c.ID),
Projections.Sum<Foo>(c => c.myProperty == MyEnum.Two ? 1 : 0)
Projections.Sum<Foo>(c => c.myProperty == MyEnum.Three ? 1 : 0)
)
Но это дает мне следующую ошибку:
Не удалось определить элемент из IIF((Convert(c.myProperty) = 2), 1, 0)
Есть ли у вас какие-либо идея?
РЕДАКТИРОВАТЬ 1: я могу получить результат с двумя запросами, но я хочу сделать это только с одним запросом.
РЕДАКТИРОВАТЬ 2: здесь я использую QueryOver.