Hristo
Hristo

Reputation: 185

ICriteria Restriction on Expression

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

Upvotes: 1

Views: 147

Answers (1)

Firo
Firo

Reputation: 30813

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")
    )
)

Upvotes: 2

Related Questions