我想在LINQ中翻譯這個查詢......如果我們在純SQL中執行它,但是在動態創建的LINQ查詢中(構建基於用戶輸入的搜索查詢),這是非常容易的,它是一個全新的故事。在LINQ中翻譯此查詢? (列表相似)
SELECT * FROM MyTable
WHERE 1=1
AND Column2 IN (1,2,3)
AND (Column1 LIKE '%a%' OR Column1 LIKE '%b%')
我們試圖建立這樣我們試圖這樣說:
if(myOjb.Column2Collection != null)
query = query.where(f => f.Column2.Contains(myOjb.Column2Collection));
if(myObj.Column1Collection != null)
{
// tough part here ?
//query = query.Where(); ...
}
那麼,什麼是最好的形式給出這個正常?
注意,我知道SqlMethod.Like的,儘管我不明白的方式來實現在這裏吧...
'WHERE 1 = 1`的用途是什麼?這不僅僅意味着「真實」,並且不會有所作爲? – Marcus 2011-02-04 14:49:20
@G_M - 通常這是在構建動態SQL時完成的,因此您不需要繼續檢查現有的where子句。 – Oded 2011-02-04 14:50:17
是你的問題如何動態地處理OR? – JohnOpincar 2011-02-04 15:28:21