ICriteria Restriction on Expression

144 views Asked by At

How should be written the following query with the NHibernate's ICriteria API:

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

What I need is to compare an expression (Property1 + Property2) to given value (confirmation.Ammount).

I'm using NHibernate 2.0 (I can't switch to newer version at the moment).

Thanks

1

There are 1 answers

0
Firo On BEST ANSWER

option 1

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

option 2

writing your own Projection see here

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