#nhibernate-criteria
#nhibernate-критерии
Вопрос:
Каков наилучший способ добавить этот запрос в качестве проекции в nhibernate?
CASE
WHEN account.firstname = '' AND account.lastname = ''
THEN email.EmailAddress
ELSE account.firstname ' ' account.lastname
END
Комментарии:
1. Разве эта логика не должна быть включена в уровень представления? Пусть hibernate извлекает то, что есть в базе данных, и обрабатывает этот сценарий обращения при отображении информации
Ответ №1:
Должно быть что-то вроде этого:
var accounts = session.QueryOver<Account>()
.Select(Projections.Conditional(Restrictions.And(
Restrictions.Eq("firstname", ""),
Restrictions.Eq("lastname", "")),
Projections.Concat(p.LastName, ", ", p.FirstName),
Projections.Property(t => t.EmailAddress)))
.List();