嗨,我正在开发Criteria
API,我想使用Criteria
API从db中获取用户。
它运行得很好,但我想这样写查询
Select * from EMP where empName LIKE '%bhan' or empName LIKE '%HAR' AND dominid=3;
如何使用Criteria
API在NHiberbate
中编写此查询?
发布于 2014-01-06 08:50:57
您的问题有一些不一致之处,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));
https://stackoverflow.com/questions/20945958
复制相似问题