1
我有一個ArrayList中的關鍵字列表,我希望能夠建立一個查詢來查找基於這個關鍵字的表中的記錄。LINQ基於列表的多個LIKE
由於關鍵字列表是動態的,因此我無法在此處創建固定查詢。
我做這樣的事情:
foreach (string kw in keywords)
{
query = query.Where(p => p.Name.StartsWith(kw));
}
的「StartsWith」這裏需要因爲我需要尋找那些真正與所提供的關鍵字開始記錄。
在T-SQL它會是這樣的
Select * from Table where
Name like 'keyword1%'
or Name like 'keyword2%'
or Name like 'keyword3%'
or ...
但我需要能夠做到這一點的LINQ?這可能嗎?
我不知道LINQ to SQL是否真的很聰明。我知道EF3.5會因爲這樣的查詢而失敗。還是我的+1。 – Steven 2010-05-27 13:39:28
使用這個我得到的「」本地序列不能用於除了Contains()運算符之外的查詢運算符的LINQ to SQL實現。「exception ... – Bathan 2010-05-31 12:18:52
@Bathan:Huh;我猜@史蒂文的權利呢 - L2S不是不幸的是,我真的不明白用'Contains'來重寫它的簡單方法... – tzaman 2010-05-31 13:09:11