LINQ and OR Criteria

本文关键字:Criteria OR and LINQ | 更新日期: 2023-09-27 18:06:35

如何以编程方式创建EF查询(使用lambda扩展方法)。我理解标准。下面是伪代码:

var query = repository.Where(x => x.Name == "aName");
foreach(string filter in filters)
{
   query = query.Where(x => x.FilterValue.Contains(filter))
}

但是我想要的不是和运算符。我想要一个或运算符。我该怎么做呢?如何在代码中创建复杂的标准树?

LINQ and OR Criteria

http://www.albahari.com/nutshell/predicatebuilder.aspx

dicatebuilder是一个很好的解决方案。但它很复杂,不太容易理解。请参阅评论中其他问题的链接。

也发现这很有用:有时从另一个方向过来很方便:

string[] filter = {"A", "B"};
var returnValue = repository
                .Where(x => x.Name == "aName")
                .Where(x => filter.Any(f => (x.FilterValue).Contains(f)))
                .ToList();