Nhibernate: ограничение с суммой 2 столбцов - PullRequest
3 голосов
/ 22 ноября 2010

Могу ли я создать этот sql-запрос, используя критерии HNibernate:

Выберите * из таблицы1, где Column1> (Column2 + Column3)

Все 3 столбца int32.Спасибо

Ответы [ 2 ]

4 голосов
/ 28 апреля 2011

Что ж, прочитав n-й раз вопрос с этой конкретной проблемой, я решил написать реализацию, не включающую в себя написание SQL.

Вы можете проверить реализацию на http://savale.blogspot.com/2011/04/nhibernate-and-missing.html, с которой вы можете написать:

criteria.Add(
   Restrictions
     .GeProperty("Prop1",
                 new ArithmeticOperatorProjection("+",
                                 NHibernateUtil.Int32,
                                 Projections.Property("Prop2"), Projections.Property("Prop3")
                                                  )
                )
);
1 голос
/ 09 декабря 2010

Вы можете использовать Expression и написать несколько SQL, вот что мне подходит.

criteria.Add(Expression.Sql("Column1 > (Column2 + Column3)"));
...