【问题标题】:Linq To Sql 'Where Or' operatorLinq To Sql 'Where Or' 运算符
【发布时间】:2009-11-21 09:45:57
【问题描述】:

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

基本上,我需要能够提出 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 子句 NOT Where OR

的 SQL 查询

【问题讨论】:

  • 发现了一个有趣的资源:@​​987654322@
  • 看起来你自己找到了它^^我在你发表评论之前就开始写了。希望我能帮上忙。

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


【解决方案1】:

我使用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);

【讨论】:

  • 想知道为什么这没有备份到 LinqToSql 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多