作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 NHibernate 3.3 使用 QueryOver
创建一个带有 OR 子句的简单选择。所以对于一个简单的选择,例如:
Select x,y,z from myTable where x='one' or y = 'two' or z = 'three'
我想出了这个:
IList<MyTable> list = session.QueryOver< MyTable >()
.WhereRestrictionOn(
Restrictions.Or(Restrictions.On< MyTable >(tab => tab.x == "One"),
Restrictions.On< MyTable >(tab => tab.y == "Two") )
);
它无法编译,老实说,我怀疑我无论如何都走错了方向。
最佳答案
这个语法应该可以解决
var list = session.QueryOver<MyTable>()
.Where(
Restrictions.Or(
Restrictions.Eq(Projections.Property<MyTable>(tab => tab.x), "One"),
Restrictions.Eq(Projections.Property<MyTable>(tab => tab.y), "Two")
)
)
.List<MyTable>()
如果我们想要更多,Disjunction
是我们实现多个 OR 的方式:
var list = session.QueryOver<MyTable>()
.Where(Restrictions.Disjunction()
.Add(Restrictions.Eq(Projections.Property<MyTable>(tab => tab.x), "One"))
.Add(Restrictions.Eq(Projections.Property<MyTable>(tab => tab.x), "Two"))
.Add(Restrictions.Eq(Projections.Property<MyTable>(tab => tab.x), "xxx"))
)
.List<MyTable>()
关于c# - 使用 QueryOver 的 NHibernate OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26803614/
我是一名优秀的程序员,十分优秀!