この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
ニバネイトで。
これまで試した
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 つのクエリで結果を取得できますが、これを 1 つのクエリだけで実行したいと考えています。
編集 2: ここでは QueryOver を使用しています。