我想使用LINQ检查给定日期是否比今天的日期早一个月。
这是什么语法?
提前致谢。
答案 0 :(得分:29)
我假设你在where子句中讨论过。它与在其他地方比较两个DateTime对象的方式基本相同。
using (DataContext context = new DataContext()) {
var query = from t in context.table
where t.CreateDate.Date < DateTime.Today.AddMonths(-1)
select t;
}
答案 1 :(得分:5)
只需添加,在LINQ To Entities中,您必须与变量进行比较。例如:
DateTime lastMonth = DateTime.Today.AddMonths(-1);
using (var db = new MyEntities())
{
var query = from s in db.ViewOrTable
orderby s.ColName
where (s.StartDate > lastMonth)
select s;
_dsResults = query.ToList();
}
答案 2 :(得分:2)
如果您不想丢弃代码
LINQ to Entities does not recognize the method 'System.DateTime AddYears(Int32)' method, and this method cannot be translated into a store expression.
我建议使用DbFunctions.AddYears。此外,如果您只关心日期而不是时间,可以使用DbFunctions.TruncateTime
像这样 -
DbFunctions.TruncateTime(x.date) ==
DbFunctions.TruncateTime(DbFunctions.AddYears(DateTime.Today, 1))