我正在寻找如何创建条件查询,会导致SQL与此类似(或具有相同效果)的例子:NHibernate的标准查询 - 如何链逻辑运算符
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和ORs? Expression.And和Expression.Or的API只接受一个左右标准,而不是一个链。
有没有人知道我在哪里可以找到一个这样的例子?
顺便说一句,x,y,z部分(在SELECT之后)目前是不相关的,因为看起来我可以用投影完成它(还没有到那里)。
这看起来不错!我会尝试一下... – joniba 2012-03-21 08:07:19
最后,我没有尝试这个,因为我最初的尝试实际上工作,我不想改变它。但我会将其标记为答案,因为它看起来像一个优雅的解决方案(我希望它也可以)。我会分开发布我的答案。 – joniba 2012-03-21 09:32:42