您好我正在使用Criteria
API,我想使用Criteria
API从db中获取用户。
它工作正常,但我想写这样的查询
Select * from EMP where empName LIKE '%bhan' or empName LIKE '%HAR' AND dominid=3;
如何使用Criteria
NHiberbate
API编写此查询
答案 0 :(得分:0)
您的问题存在一些差异IN
不一样,与LIKE
您可以通过以下方式将NHibernate.Criterion.ICriterion
对象添加到NHibernate.ICriteria
对象。
//create the criteria
ICriteria _criteria = CurrentSession.CreateCriteria<Employee>();
//create a disjunction
var disjunction = NHibernate.Criterion.Restrictions.Disjunction();
//form the disjunction
disjunction.Add(NHibernate.Criterion.Restrictions.Like("empName", "bhan", NHibernate.Criterion.MatchMode.Anywhere));
disjunction.Add(NHibernate.Criterion.Restrictions.Like("empName", "HAR", NHibernate.Criterion.MatchMode.Anywhere));
//add the disjunction to the criteria object
_criteria.Add(disjunction);
_criteria.Add(NHibernate.Criterion.Restrictions.Eq("dominid", 3));
或者您可以在条件中添加IN
子句。
_criteria.Add(NHibernate.Criterion.Restrictions.In("Entity_Property", An_Array_Of_Values));