ICriteria对表达的限制

时间:2011-10-18 13:22:01

标签: nhibernate icriteria

如何使用NHibernate的ICriteria API编写以下查询:

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

我需要的是将表达式(Property1 + Property2)与给定值(confirmation.Ammount)进行比较。

我正在使用NHibernate 2.0(目前我无法切换到更新的版本)。

由于

1 个答案:

答案 0 :(得分:2)

选项1

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

选项2

编写自己的投影see here

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