如何使用 LINQ 链接 OR 子句?

2023-11-21

我有一个场景,需要使用 LINQ 构建 SQL 查询,其中包含可变数量的 OR 子句。我正在编写一个函数,它将根据某些输入构建查询。函数定义看起来类似于...

function BuildQuery(ICollection<ColumnsThatNeedToBeTrue> columns)
{
  ...
}

因此,我得到了一组需要检查其是否正确的列,并且检查需要使用OR条款。

If the columns数组包含A and B,我需要查询来检查列A为真 OR 列B是真的。

If the columns数组包含A, B and C,我需要查询并检查是否A OR B OR C是真的。

我不知道如何在一次内完成这一切Where,因为我不知道如何逐步增加额外的||条款。我不确定如何根据输入数组在下面包含额外的 OR 检查。

var query = entities.Where(m => m.A == true || m.B == true ...)

我无法连锁Where函数,每个函数都有自己的列检查,因为它使用AND条款和我需要OR.

有没有办法使用 LINQ 构建这样的查询?


您可以使用谓词生成器链接or状况。

var predicate = PredicateBuilder.False<SomeEntity>();

predicate = predicate.Or (p => p.A == true);
if(something)
   predicate = predicate.Or (p => p.B == true);

var query = entities.AsExpandable().Where (predicate); //AsExpandable() for EF
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 LINQ 链接 OR 子句? 的相关文章

随机推荐

  • 旋转分类散景图的小刻度标签

    我正在尝试轮换专业 和短轴在 Bokeh 的多类别图中 类似于对主要刻度标签所做的操作 here并在 matplotlib 中完成here 当有多个类别时 它们的标签 文本经常会混淆在一起 从中汲取一些灵感有关分类数据的 Bokeh 文档结
  • 将字符串转换为整数[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 String 转换为 Int Hi 我在将字符串转换为整数时遇到以下问题 string str line Substring 0 1 This picks an integer at offs
  • 上传文件时出现错误“无法处理部件,因为未提供多部件配置”[重复]

    这个问题在这里已经有答案了 我试图通过 JSP 文件中的表单上传文件 但收到此错误 Servlet 已经具有 MultipartConfig 表示法 我正在使用 servlet 3 0 和 apache tomcat 8 错误信息 java
  • CSS 在容器内旋转元素

    如果你看一下 http jsfiddle net KA4dz 在此演示中 您可以清楚地看到内部元素由于旋转而到达外部元素的外部 请求是缩小内部元素 同时保持纵横比和中心位置 使其适合其容器 用例是用户可以手动旋转这样的内部元件 同时确保其保
  • 如何在 Linux 上将 googleTest 设置为共享库

    Debian 不再为 gTest 提供任何预编译包 他们建议您将该框架集成到项目的 makefile 中 但我想保持我的 makefile 干净 如何像以前的版本 在开始之前 请确保您已阅读并理解这篇来自谷歌的注释 本教程使 gtest 的
  • 在 Dynamics 2011 中调用对话框并向其传递多个 recordID

    我希望允许用户从联系人实体中选择一个或多个联系人 然后启动一个接受记录 ID 的对话框 这个想法是向联系人添加一些自定义配置 我目前在功能区按钮上有一个自定义操作 可以启动一个对话框 但它只接受一个记录 ID 我可以访问所选记录 ID 的列
  • 如何在 Razor 中定义方法?

    如何在 Razor 中定义方法 暂且不谈任何关于何时 如果有的话 应该完成的争论 功能就是你如何做 functions Add code here
  • VBA:将多个值传递给 Instr

    现在 我有一长串用户通过表单提交的 行业 值 我编写了一个宏 它将搜索这些值中的特定术语 并粘贴符合我的 可接受 行业值的小得多的列表的值 重点是将用户提交的所有当前行业值重新分类到我现有的分类法中 这是我的 If Then 语句目前的样子
  • 如何使用动态查询插入表变量?

    我尝试使用临时表开发此存储过程 但这不起作用 因此我改用表变量 我需要对表变量执行临时动态查询 然后使用该表变量执行最终查询 问题是我收到错误 必须声明标量变量 clms 我假设 Exec 没有表变量的范围 DECLARE qry nvar
  • 使用 python urllib 从 url 下载图像但收到 HTTP 错误 403: Forbidden

    我想使用 python 模块 urllib request 从 url 下载图像文件 该模块适用于某些网站 例如 mangastream com 但不适用于另一个网站 mangadoom co 接收错误 HTTP 错误 403 禁止 后一种
  • 为任意对象创建哈希?

    我一直在使用pickle dumps然而 为了为任意 Python 对象创建哈希 我发现 dict set 顺序未规范化 因此结果不可靠 有several related 问题上 SO 和别处 但我似乎找不到使用相同的相等基础的哈希算法 g
  • 有没有办法让 python pickle 忽略“它不是同一个对象”错误

    有没有办法让 python pickle 忽略 它不是同一个对象 错误 我正在使用 Mock 编写一个测试 以对 datetime utcnow 生成的结果进行细粒度控制 我使用的代码对时间敏感 因此模拟的补丁使其易于测试 相同的测试需要腌
  • 使用 ggplot2 在同一图上使用 ECDF [重复]

    这个问题在这里已经有答案了 我有一个数据框 在应用熔化函数后 它看起来类似于 var val 1 a 0 6133426 2 a 0 9736237 3 b 0 6201497 4 b 0 3482745 5 c 0 3693730 6 c
  • Gradle - 根据产品风味构建 sass(多文件夹)

    我们创建了一个带有 webview 的 Android 应用程序 该应用程序显示资产文件夹中的本地网站 该项目具有不同的产品风格 可以生成具有不同样式和内容但具有相同代码库 本机 Java 和 HTML JS 的不同应用程序 对于每种口味
  • 如何在 C# 中检索 couchbase 数据库中的键/文档列表

    我对沙发基地完全陌生 这是我用于插入和获取文档的示例代码 using var bucket Cluster OpenBucket var document new Document
  • Android Webview通过设置token cookie自动登录https网站

    我想要实现的是通过将令牌设置为 cookie 自动登录到 https 网站 它适用于 android chrome 浏览器 但不适用于应用程序 webview 基本上 我在使用 cookie 设置将 https url 加载到 Web 视图
  • 如何使页面加载到锚标记?

    我怎样才能或者是否有可能做到这样 当网页加载时 它首先向您显示的是页面的一部分 其中锚标记是您希望人们首先看到的部分 是否可以 提前感谢您的所有帮助 像这样简单的事情就可以了 a href anchor text a
  • 设置函数参数的类型?

    有没有办法让javascript函数知道某个参数是某种类型 能够做这样的事情就完美了 function myFunction Date myDate String myString do stuff 谢谢你 Update 如果我愿意的话 答
  • 使用多个查询的复杂 WordPress 查询

    所以我有一个查询 如果我直接在 MySQL 中运行它 它工作得很好 但如果我通过 Wordpress wpdb gt query 运行它 它就会失败 例如 如果我将 query 回显到页面并将其复制并粘贴到 phpMyAdmin 中 我会得
  • 如何使用 LINQ 链接 OR 子句?

    我有一个场景 需要使用 LINQ 构建 SQL 查询 其中包含可变数量的 OR 子句 我正在编写一个函数 它将根据某些输入构建查询 函数定义看起来类似于 function BuildQuery ICollection