8

I'm trying to emulate subject query with NHibernate's IQueryOver. So far I have

var q = CurrentSession.QueryOver<ObjectModel.Order>().
    WhereRestrictionOn(o => o.Buyer.ID).IsIn(partyIDs).
    WhereRestrictionOn(o => o.Seller.ID).IsIn(partyIDs);

This, however, generates an and query, whereas I need to have an or operator between two where clauses.

How is this done with IQueryOver?

Endy Tjahjono
  • 23,432
  • 23
  • 79
  • 119
Anton Gogolev
  • 110,157
  • 37
  • 194
  • 282

1 Answers1

9

As it usually is, found question soon after explaining the problem to general public. Thanks, guys!

var q = CurrentSession.QueryOver<ObjectModel.Order>();

q.RootCriteria.Add(Restrictions.Or(
    Restrictions.On<ObjectModel.Order>(o => o.Buyer.ID).IsIn(partyIDs),
    Restrictions.On<ObjectModel.Order>(o => o.Seller.ID).IsIn(partyIDs)));
Anton Gogolev
  • 110,157
  • 37
  • 194
  • 282