假设我有一个IQueryable
集合,以及一些字符串的列表。
我可以这样构建查询:
foreach (var somestring in somestrings)
{
collection = collection.Where(col=>col.Property.Contains(somestring);
}
这将生成以下SQL查询:
SELECT ...... FROM ..... WHERE
(Property LIKE '%something1%') AND
(Property LIKE '%something2%') AND
(Property LIKE '%something3%')
注意,WHERE子句与AND连接。
是否有办法构造类似的查询,但与OR连接?
2条答案
按热度按时间cwtwac6a1#
您可以在一个查询中完成此操作,而无需使用
Any
进行循环:或使用简化语法的相同查询:
p4rjhz4m2#
您可以使用this之类的 predicate 生成器。有关more,请参见SO。
您可以在此处使用AND或OR连接查询。
Sample taken from C# 7.0 in a Nutshell
我在实现自定义搜索字段时成功地使用了此功能
例如
[red blue] -〉搜索红色和蓝色
[red,blue] -〉搜索红色或蓝色