如何一点点构建一个Linq to Sql where子句?

2023-12-28

我正在参数类中传递一组查询字符串参数,用于查询图像数据库。每次调用时,某些参数可能为空。所以在 sql 中我会建立这样的查询

if (parameters.Value1 != null)
{
    sql.Append("sql_where_clause");
}

if (parameters.Value2 != null)
{
    sql.Append("sql_where_clause");
}

如何使用 Linq 执行相同操作?


动态构建 where 子句的最佳方法是使用精彩的 Albahari谓词生成器 http://www.albahari.com/nutshell/predicatebuilder.aspx.

您可以使用它来构建包含以下内容的 where 子句表达式ORAND。最初打算对此进行语言集成支持,但是没完全做到 http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/f79d7065-a3b7-47ad-a02f-44858b8ad3b6/将其转换为 C# 3。

例如:

var whereClause = PredicateBuilder.False<Customer>();

if (parameters.Value1 != null)
{
    whereClause = whereClause.Or(customer => customer.City == parameters.Value1);
}

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

如何一点点构建一个Linq to Sql where子句? 的相关文章

随机推荐

  • DFP 渲染后回调

    我需要触发一些 JavaScriptafterDFP 广告管理系统已完成页面上所有广告的呈现 或者至少在触发时完成折叠空Divs 隐藏不包含订单项的广告单元 有人知道如何让 DFP 广告管理系统在这些事件发生后触发回调吗 GPT API 现
  • 在新创建的团队中进行测试时,团队 UpdateActivity 事件有所不同

    我们有一个 Teams 机器人 可以在 MS Teams 中发布消息 新对话的第一个活动始终是一张自适应卡片 我们偶尔会用一张新卡片更新它 在我用这个机器人组建了一个新团队之前 这一切都很好 我们尝试使用 UpdateActivityAsy
  • 重新打开 SQL Server Management Studio 后恢复选项卡

    我不认为有一种方法可以模拟 FireFox 类型的设置 即如果我关闭 SQL Server Management Studio 2008 我打开的选项卡在重新启动时会再次出现 我知道我可以将各个窗口保存到 sql 文件中 但想知道是否有办法
  • 使用 setNextMediaPlayer 播放音频时出现问题

    我需要在循环之间没有间隙地播放音频 音频需要无限循环地播放 使用setNextMediaPlayer只合并两个音轨 无间隙 之后会自动停止播放音频 不会永远循环 提前致谢 mp1 MediaPlayer create getApplicat
  • 如何注释以允许使用 Hibernate Search 搜索 List 字段

    假设我有一个如下所示的域对象 Entity Indexed public class Thingie implements DomainObject private Long id private Integer version priva
  • java中基于超类和子类的泛型类型的多重限制

    我有一个实现特定接口的通用列表类 接口中的列表项也实现相同的接口 public abstract class List
  • 执行 aws s3 cp 命令时出现全局名称“ssl”未定义错误

    我正在尝试使用 AWS CLI 命令将文件上传到 AWS S3 我使用的是RedHat 4操作系统的系统 Python版本是2 7 9 OpenSSL 版本为 0 9 8v 2012 年 4 月 19 日 我已经安装了 AWS CLI 当我
  • Code::Blocks 出现 GLUT 编译错误

    一周前 当我第一次尝试使用 GLUT 并遵循本教程 http www sci brooklyn cuny edu goetz codeblocks glut 它工作正常 没有任何错误 现在 一周后 我安装了相同的软件 相同的库 但每次我尝试
  • 将数据复制到同一个表中或从同一个表中复制数据,并将复制的数据中某一列的值更改为指定值

    我想复制 SQL Server 2008 数据库中单个表中的一些数据 并将其复制到同一个表中 并将复制数据的一列中的值更改为单个指定数字 这是一个例子 在下面的名为Metric的表中 数据是 Key Name MetricValue 112
  • 在 WebView 中检查互联网连接

    各位程序员大家好 我的 WebView 应用程序出现问题 我想在启动时添加一个 连接检查 当没有可用的 Internet 连接或 WebView 超时时 该检查会弹出错误 我无法自己完成它 因为我是 Android 编程新手 我还想添加一个
  • Java 中 HashMap 的迭代器

    我尝试在 Java 中迭代 hashmap 这应该是一件相当容易的事情 但是 以下代码给我带来了一些问题 HashMap hm new HashMap hm put 0 zero hm put 1 one Iterator iter Ite
  • 如何清除 Ruby 中的终端?

    我想知道如何在 Ruby 中做我能做的事情system clear 在C 我写了一个像这样的程序 puts amit system clear 我希望执行此命令后清除控制台 但它不起作用 如果你想要一些不太便携的东西 你可以尝试 syste
  • WCF 和 ColdFusion

    我有一个 WCF WebService 我想使用 ColdFusion 来使用 常规过程是使用 CFHTTP 来处理 WSDL 并在正文中包含 SOAP 请求 通常情况下 这是有效的 一切都工作正常
  • 将 Spring Security 3 与 cookie 结合使用

    我有一个用 Java 构建的需要授权的应用程序 但是 身份验证部分由不同 单独的应用程序 不是 Java 处理 用户登录到身份验证应用程序 该应用程序会设置 cookie 如果用户被授权访问 Java 应用程序 他们将被授权应用程序重定向到
  • 需要在 Android 中将图像发布到 Tumblr 博客

    我需要将图片发布到 Tumblr 我读了这个http www tumblr com docs en api v2 auth http www tumblr com docs en api v2 auth我开始知道我需要获取用户信息才能获取博
  • Rails Mailer Net::SMTPServerBusy

    在我的 Rails 站点上 当我尝试通过 GMail 发送邮件时 它工作得很好 但是当我尝试通过 MandrillApp 发送它时 它给出以下错误 RController create 是调用交付命令的地方 Net SMTPServerBu
  • 合并排序数组[重复]

    这个问题在这里已经有答案了 可能的重复 合并两个排序列表 https stackoverflow com questions 2348374 merging two sorted lists N路合并算法 https stackoverfl
  • 一个大的包含文件还是几个较小的包含文件?

    我正在编写一些jsp 我想知道是否最好有一个大的包含文件 我将包含在每个页面中 或者几个较小的文件 我将根据需要仅包含在某些页面上 任何给定页面最多只需要调用几个方法 我主要关心的是性能 其次是维护 我们正在使用 jsp include 指
  • 通过接口使用 Function<> ?

    我已经有一个现有的泛型类 public class Foo
  • 如何一点点构建一个Linq to Sql where子句?

    我正在参数类中传递一组查询字符串参数 用于查询图像数据库 每次调用时 某些参数可能为空 所以在 sql 中我会建立这样的查询 if parameters Value1 null sql Append sql where clause if