Как выполнить условную сумму с помощью Nhibernate?

Я пытаюсь сделать аналог этого кода 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.

6
задан Andrew Whitaker 20 March 2012 в 13:44
поделиться