tutorial net mvc example ejemplo asp nhibernate

mvc - nhibernate vb net example



¿Cómo crear declaraciones OR para NHibernate? (3)

Está buscando las clases Conjunction y Disjunction , estas se pueden usar para combinar varias declaraciones para formar declaraciones OR y AND.

Y

.Add( Expression.Conjunction() .Add(criteria) .Add(other_criteria) )

O

.Add( Expression.Disjunction() .Add(criteria) .Add(other_criteria) )

Al crear un criterio para NHibernate, todos los criterios se agregan como AND .

Por ejemplo:

session.CreateCriteria(typeof(someobject)) .Add(critiera) .Add(other_criteria)

entonces el resultado final será

SELECT ... FROM ... WHERE criteria **AND** other_criteria

Me gustaría decirle a NHibernate que agregue los criterios como "OR"

SELECT ... FROM ... WHERE criteria **OR** other_criteria

Cualquier ayuda es apreciada


Puede usar Restrictions.or , tal que:

session.CreateCriteria(typeof(someobject)) .Add(critiera) .Add(other_criteria);

dónde:

other_criteria = Restrictions.or("property", "value");

Puede obtener más información sobre esto siguiendo la documentación de la interfaz Criteria de Hibernate , que es lo mismo que NHibernate.


Restrictions.Disjunction()

var re1 = Restrictions.Eq(prop1, prop_value1); var re2 = Restrictions.Eq(prop2, prop_value2); var re3 = Restrictions.Eq(prop3, prop_value3); var or = Restrictions.Disjunction(); or.Add(re1).Add(re2).Add(re3); criteria.Add(or);