query projections icriterion c# sql nhibernate queryover nhibernate-queryover

c# - projections - Use OR Clause en queryover en NHibernate



queryover join (1)

Estoy usando Nhibernate. Estoy escribiendo una consulta a través del método queryover. Puedo escribir y mencionar como en el código a continuación. Funciona bien.

db.QueryOver(Of Users)() .Where(Function(x) x.Role = "Guest") .And(Function(x) x.Block = 0) .And(Function(x) x.APPID = appId) .List();

Pero quiero usar la cláusula Or lugar de And o la combinación de ambos. ¿Cómo puedo implementar esto? Gracias


Aquí hay una descripción de cómo podemos construir O con NHiberante

La sintaxis (en C # como dice la etiqueta) es:

  • Restrictions.Or(restriction1, restriction1)
  • Restrictions.Disjunction().Add(restriction1).Add(restriction2).Add(...

En este caso, podría ser así (nuevamente en C #, mientras que la pregunta parece usar VB) :

db.QueryOver<Users>()() .Where((x) => x.Role == "Guest") .And(Restrictions.Or( Restrictions.Where<Users>((x) => x.Block == 0) , Restrictions.Where<Users>((x) => x.APPID == appId) )) .List<Users>();