【发布时间】:2012-03-20 17:30:14
【问题描述】:
我正在寻找一个示例,说明如何创建一个条件查询,该查询将产生与此类似的 SQL(或具有等效效果):
SELECT x, y, z
FROM SomeTable tbl
WHERE tbl.a = 'some value'
AND (
(tbl.b = '1' AND tbl.c = 'whatever1' AND tbl.d = 123) OR
(tbl.b = '2' AND tbl.c = 'whatever2' AND tbl.d = 456) OR
(tbl.b = '3' AND tbl.c = 'whatever3' AND tbl.d = 789)
)
创建查询时,我有一个过滤器数据列表(填充“AND”之后的数据)以及一个额外参数(填充上面的“某些值”部分)。
基本上我的问题是在构建这种条件查询时如何链接 AND 和 OR? Expression.And 和 Expression.Or 的 API 只接受一个左右条件,而不是一个链。
有人知道我在哪里可以找到这方面的例子吗?
顺便说一句,x,y,z 部分(在 SELECT 之后)目前无关紧要,因为我似乎可以通过投影来完成它(还没有到达那里)。
【问题讨论】:
标签: nhibernate nhibernate-criteria