首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在NHibernate标准API中应用IN关键字?

如何在NHibernate标准API中应用IN关键字?
EN

Stack Overflow用户
提问于 2014-01-06 08:36:11
回答 1查看 154关注 0票数 0

嗨,我正在开发Criteria API,我想使用Criteria API从db中获取用户。

它运行得很好,但我想这样写查询

代码语言:javascript
运行
复制
Select * from EMP where empName LIKE '%bhan' or empName LIKE '%HAR' AND dominid=3;

如何使用Criteria API在NHiberbate中编写此查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 08:50:57

您的问题有一些不一致之处,IN是不一样的,也不能产生与LIKE相同的结果。

您可以通过以下方式将NHibernate.Criterion.ICriterion对象添加到NHibernate.ICriteria对象。

代码语言:javascript
运行
复制
//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子句。

代码语言:javascript
运行
复制
_criteria.Add(NHibernate.Criterion.Restrictions.In("Entity_Property", An_Array_Of_Values));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20945958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档