2

我尝试在实体框架中进行搜索查询。我有带有“Id”、“ProjectName”、“Description”和“modificationdate”等的表项目。我想对“ProjecName”、“Description”和“modificationdate”进行搜索。我成功地对“项目名称”和“描述”执行了搜索,但我不知道如何按日期执行搜索

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

2 回答 2

2

从评论中获取您所说的话:

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

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

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它就是一个充分的谓词。

于 2013-10-28T10:53:06.460 回答
2

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

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

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

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

编辑:按给定日期搜索:

date == n.modificationdate

date给定日期在哪里。如果在SearchKey变量中指定了日期(我假设是 a string),则必须先将其解析为日期。

于 2013-10-28T10:09:27.567 回答