如何在ISession.QueryOver查询中添加or条件语句?
ISession.QueryOver添加OR条件的实现方法
你可以通过两种方式实现OR条件拼接:
- 方式1:使用
Restrictions.Or包裹两个条件,替换原有的两个独立.Where()调用:
// 变量定义 int val1 = 0; int val2 = 0; // 正确的OR查询写法 var query = session.QueryOver<你的实体类>(() => obj1) .Where(Restrictions.Or( Restrictions.Eq(Projections.Property(() => obj1.val1), val1), Restrictions.Eq(Projections.Property(() => obj1.val2), val2) )) .ToList();
- 方式2:使用QueryOver支持的强类型逻辑运算符写法,语法更简洁,编译期即可校验字段合法性:
var query = session.QueryOver<你的实体类>(() => obj1) .Where(() => obj1.val1 == val1 || obj1.val2 == val2) .ToList();
注意:代码中的你的实体类需要替换为你实际映射的obj1对应的实体类型名称。
内容的提问来源于stack exchange,提问作者HAZAN
相关产品推荐
相关产品推荐

