我正在尋找如何創建條件查詢,會導致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