2013-04-17 45 views
2

我正在構建一個MVC應用程序,它將不得不爲服務器構建動態linq查詢,而且我正面臨讓我困惑的事情。無法使用動態linq檢查相同的屬性兩次

到現在爲止我能做出這樣的查詢:

var objQry = from o in m_DB.OBJECTS.Where(whereConditions) 
      select c; 

if(!objQry.Any()) 
{ 
    return null; 
} 

這工作得很好。 「whereConditions」變量是之前構建的字符串。下面是一個有效的查詢字符串示例:

OBJ_NAME == \"Sword\" and OBJ_OWNER == \"Stan\" 

這將返回任何名稱爲「Sword」由「Stan」所有的對象。但是,奇怪的是,如果我做兩次使用相同參數的查詢字符串,如:

OBJ_COLOR == \"Blue\" and OBJ_COLOR == \"Red\" 

甚至以爲我可以證明我的數據庫確實有一個「藍色」項目單「紅」的項目,這字符串將返回null。誰能幫我嗎?

+2

當然,你的意思是「或」? –

+1

一個屬性永遠不能有2個值。 –

+0

Aaaaaaahhhh !!好吧,我需要添加一個「或」因素! :D不知道,並會嘗試一下。謝謝! – hsim

回答

2

如果我理解正確,您想要返回顏色爲紅色或藍色的所有項目。您當前的查詢返回項目的OBJ_COLOR爲「紅色」「藍色」的項目。這不會返回任何東西,因爲它是一個矛盾 - 它不能同時存在。

我相信你想使用OR操盤手:

"OBJ_COLOR == \"Blue\" OR OBJ_COLOR == \"Red\"" 
相關問題