You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# LINQ如何实现针对多个离散日期的IN clause条件查询

实现方法

你可以通过本地集合+Contains方法实现IN查询效果,LINQ提供器(EF/EF Core等)会自动将该语法翻译为SQL的IN子句,步骤如下:

  1. 先定义要匹配的离散日期集合
// 按需添加你要匹配的所有日期
var targetDates = new List<DateTime>
{
    new DateTime(2021, 8, 30),
    new DateTime(2021, 9, 3),
    new DateTime(2021, 8, 16)
};
  1. 修改原LINQ查询的where条件
results = from a in uow.Query<SomeTable>()
          where targetDates.Contains(a.SomeDateField)
          select a;

补充说明

  • 如果你习惯用方法语法,也可以写成:
results = uow.Query<SomeTable>()
    .Where(a => targetDates.Contains(a.SomeDateField));
  • 如果SomeDateField是带时分秒的DateTime类型,仅需要按日期匹配时,可以调整为targetDates.Contains(a.SomeDateField.Date),需要确认你使用的ORM支持该写法的SQL翻译
  • 该写法仅适合离散值数量较少的场景,符合你的需求

内容的提问来源于stack exchange,提问作者Dmytro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:15:01