我有一个List<string> filterCriteria,其中包含一个或多个关键字,用于根据客户端上的用户选择在数据库中搜索列。

我的问题是我不太清楚如何将linq转换为sql语句,因为它可能没有'or'运算符,或者可能有多个(10+)。

这是我的原始查询

var originalQuery = (from p in productContext.Products
                         select p);


然后根据列表,我需要使用或运算符通过List<string> filterCriteria中的单词查询“ originalQuery”。

例如。

    originalQuery = originalQuery.Where(p => p.ProductRange == "criteria1" ||
    p.ProductRange == "criteria2");


等等...

最佳答案

您可以这样做:

originalQuery = originalQuery.Where(p => filterCriteria.Contains(p.ProductRange));


这样,您将获得originalQuery中所有具有ProductRange选定值之一的项目。

关于c# - Linq Multiple哪里查询或运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12579386/

10-09 02:55