Linq To Sql'Where Or'运算符

时间:2009-11-21 09:45:57

标签: linq-to-sql where-clause where

我需要创建一个查询,检查字段(字符串)是否包含运行时提供的一个或多个单词。

基本上我需要能够提出WhereOr问题。在处理LinqToSql时,这似乎应该是一个常见问题。

我发现了以下reference,但无法理解它 - 并且不知道如何在我的项目中使用它。

我尝试过以下循环:

        var query = from d in context.Domains select d;
        for (int i = 0; i < words.Length; i++)
        {
            query = query.Where(d => d.Name.Contains(words[i]));
        }

但这会使用 WHERE AND 构建一个SQL查询子句其中OR

1 个答案:

答案 0 :(得分:17)

我使用PredicateBuilder来做这些事情。

谓词结构如下所示:

     var query = from d in context.Domains select d;
     var predicate = PredicateBuilder<Domains>.False();

     for (int i = 0; i < words.Length; i++)
        {
            predicate = predicate.Or(d => d.Name.Contains(words[i]));
        }
    query = query.Where(predicate);