2012-06-17 54 views
0

我有以下情形:多個其中具有分離的在鏈路條款或

用戶可以在搜索過程中從下列選項中任一項挑:

  • 1-3
  • 4-6
  • 7-9
  • 10-12
  • 12+

說,他們挑選0,4-6和12+

的SQL where語句應該是:

Where (total_count = 0 
OR (total_count >= 4 AND total_count <= 6) 
OR total_count > 12) 

我們獲取這些值,我通過一個複選框列表集合迭代所以是嘗試:

query = query.Where(tc => tc.total_count >= 4 && tc.total_count <= 6); 

但是,這是在聲明之間添加一個AND,我怎麼可以添加一個or。我意識到,我可以建立一個包含整數的列表並做一個包含,但我不知道12+可能會達到多少。

謝謝

+0

我沒有看到添加「OR」的問題,所有「WHERE」子句需要的是一個謂詞(返回true或false的東西「。或者我錯過了點 – mhashim

+0

在http://albahari.com/nutshell/predicatebuilder.aspx上找到解決方案 – Pixelstiltskin

回答

0

我沒有看到添加「或」的問題。所有關於你的SQL例如「WHERE」條款需要的是一個謂語(即返回true或false的東西。」也許我錯過了這一點。

相當於將

query.Where(tc=> tc.total_count == 0 || (tc.total_count >= 4 && tc.total_count <= 6) || tc.total_count > 12) 
+0

我遇到的問題是我從一個複選框中獲取值,所以它發生了變化。我偶然發現了http://www.albahari.com/nutshell/predicatebuilder.aspx,它對我的​​問題進行了排序 – Pixelstiltskin