ICriteria Ограничение на выражение - PullRequest
1 голос
/ 18 октября 2011

Как написать следующий запрос с помощью API-интерфейса ICibereria NHibernate:

DetachedCriteria criteria = DetachedCriteria.For<Order>()
    .Add(Restrictions.Eq("Property1 + Property2", confirmation.Ammount));

Что мне нужно, это сравнить выражение (Property1 + Property2) с заданным значением (translation.Ammount).

Я использую NHibernate 2.0 (сейчас я не могу перейти на более новую версию).

Спасибо

1 Ответ

2 голосов
/ 18 октября 2011

опция 1

.Add(Expression.Sql("(Property1 + Property2) = ?", confirmation.Ammount, NHibernateUtil.Int32));

опция 2

написание собственного прогноза см. Здесь

.Add(Restrictions.Eq(new ArithmeticOperatorProjection(
    "+", NHibernateUtil.Int32, Projections.Property("Property1"), Projections.Property("Property2")
    )
)
...