2011-05-16 7 views
8

Estoy tratando de emular la consulta del asunto con NHibernate's IQueryOver. Hasta ahora tengoDónde ... En ... O dónde ... En ... con NHibernate IQueryOver

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

Esto, sin embargo, genera una consulta and, mientras que tengo que tener un operador or entre dos where cláusulas.

¿Cómo se hace esto con IQueryOver?

Respuesta

9

Como suele ser, se encontró una pregunta poco después de explicar el problema al público en general. ¡Gracias chicos!

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))); 
+3

se puede comprobar esto también Anton [queryover y (x como 'a' o Y al igual que 'a')] (http://stackoverflow.com/questions/4541546/queryover-and-x-like- a-o-y-like-a) – Bastardo

+0

@Burn Bien vale la pena una respuesta por separado. ¡Gracias! –

Cuestiones relacionadas