使用实体框架按日期执行搜索

本文关键字:日期 执行 搜索 框架 实体 | 更新日期: 2023-09-27 18:37:17

我尝试在实体框架中进行搜索查询。我有带有"ID"、"项目名称"、"描述"和"修改日期"等的表格项目。我想对"项目名称"、"描述"和"修改日期"进行搜索。我成功地对"项目名称"和"描述"进行了搜索,但我不知道如何按日期执行搜索

var found = from n in context.Project
                            where n.projectName.Contains(SearchKey) ||
                            n.description.Contains(SearchKey) 
                        select n;

使用实体框架按日期执行搜索

例如,您可以使用大于>、小于<和等于==运算符(有关完整列表,请参阅此处)按日期进行搜索。在一周前或更短时间内修改项目的示例:

DateTime.Now.AddDays(-7) > n.modificationdate

如果不想包含时间,可以使用 Date 属性将其排除:

DateTime.Now.AddDays(-7).Date > n.modificationdate.Date

编辑:按给定日期搜索:

date == n.modificationdate

其中date是给定的日期。如果在 SearchKey 变量中指定了日期(我假设它是一个string),您必须首先将其解析为日期。

从评论中获取您所说的内容:

实际上我尝试在给定日期执行搜索

如果要搜索给定日期的修改,只需搜索大于或等于日期开始的值,然后搜索小于后一天的所有值。

var searchDate = new DateTime(2013, 2, 5); // or searchDateWithTime.Date
var searchDatePlusOne = searchDate.AddDays(1);
return from n in context.Project
       where n.ModificationDate >= searchDate
             && n.ModificationDate < searchDatePlusOne
       select n;

如果n.ModificationDate包含日期,仅此而已,则n.ModificationDate == searchDate谓词就足够了。