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