如何为NHibernate创建或声明?
为NHibernate创建标准时,所有标准都添加为如何为NHibernate创建或声明?,nhibernate,Nhibernate,为NHibernate创建标准时,所有标准都添加为和 例如: session.CreateCriteria(typeof(someobject)) .Add(critiera) .Add(other_criteria) 那么最终的结果将是 SELECT ... FROM ... WHERE criteria **AND** other_criteria 我想告诉NHibernate将标准添加为“或” 感谢您提供的任何帮助您可以使用限制。或,例如: session.CreateCriteria
和
例如:
session.CreateCriteria(typeof(someobject))
.Add(critiera)
.Add(other_criteria)
那么最终的结果将是
SELECT ...
FROM ...
WHERE criteria **AND** other_criteria
我想告诉NHibernate将标准添加为“或”
感谢您提供的任何帮助您可以使用限制。或
,例如:
session.CreateCriteria(typeof(someobject))
.Add(critiera)
.Add(other_criteria);
其中:
other_criteria = Restrictions.or("property", "value");
您可以在下面的中了解更多信息,这与NHibernate相同。您正在寻找连接类
和析取类
类,这些类可用于组合各种语句以形成OR语句
和
.Add(
Expression.Conjunction()
.Add(criteria)
.Add(other_criteria)
)
或
.Add(
Expression.Disjunction()
.Add(criteria)
.Add(other_criteria)
)
使用限制。析取()
.Add(
Expression.Disjunction()
.Add(criteria)
.Add(other_criteria)
)
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);