Свободный эквивалент nHibernate QueryOver SQL 'CASE'
По сути, я хочу написать этот фрагмент SQL:
SELECT
CASE
WHEN t.type = 'a' THEN
t.name
ELSE
t.otherName
END
as "Name"
FROM myTable t
в QueryOver
1 ответ
Решение
Возможно есть какой-то более приятный синтаксис, но это должно сделать
var result = session.QueryOver<MyEntity>()
.Select(Projections.Alias(
Projections.Conditional(Restrictions.Eq("type", 'a'),
Projections.Property(t => t.name),
Projections.Property(t => t.othername)),
"Name"
)
.List();