linq-to-sql – Linq To Sql’Where Or’运算符

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

基本上我需要能够问一个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

解决方法

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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...