代码改变世界

EF的日期运算

2012-12-31 14:42  slmk  阅读(573)  评论(0)    收藏  举报

有时我们要对日期做加减运算,常用于where语句中:

//错误代码
Context.Article
    .Where(p => p.StartDate < DateTime.Now)
    .Where(p => p.StartDate.AddDays(p.Period) > DateTime.Now)

以上代码是程序员很自然的想法,可惜的是EF不支持AddDays方法。需要使用EntityFunctions:

Context.Article.Where(p => p.StartDate < DateTime.Now)
               .Where(p => EntityFunctions.AddDays(p.StartDate, p.Period)
                   > DateTime.Now);