我尝试在Entity框架中进行搜索查询。我的表项目有'Id','ProjectName','Description'和“modificationdate”等。我想在'ProjecName','Description'和“modificationdate”上执行搜索。我成功地在'ProjectName'和' '描述',但我不知道如何按日期执行搜索
var found = from n in context.Project
where n.projectName.Contains(SearchKey) ||
n.description.Contains(SearchKey)
select n;
答案 0 :(得分:2)
您可以使用比>
,小于<
和等于==
运算符更高的运算符(请参阅this获取完整列表)来按日期搜索。一周或更短时间内修改项目的示例:
DateTime.Now.AddDays(-7) > n.modificationdate
如果您不想包含时间,可以使用Date
属性将其排除:
DateTime.Now.AddDays(-7).Date > n.modificationdate.Date
编辑按指定日期搜索:
date == n.modificationdate
date
是指定日期。如果在SearchKey
变量中指定了日期(我假设它是string
),则必须先将其解析为日期。
答案 1 :(得分: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
就足够了。