使用AddMonth方法的LINQ to Entities

这是我的代码:

return Newsletterctx.Subscribers.Count(o => o.Validated == false && o.ValidationEmailSent == true && o.SubscriptionDateTime.AddMonths(1) < DateTime.Now); 

我收到此错误:

LINQ to Entities无法识别方法’System.DateTime AddMonths(Int32)’方法,并且此方法无法转换为存储表达式。

也许您可以将日期改为测试而不是:

 DateTime testDate = DateTime.Now.AddMonths(-1); return Newsletterctx.Subscribers.Count (o => o.Validated == false && o.ValidationEmailSent == true && o.SubscriptionDateTime < testDate); 

你可以使用SqlFunctions classvar;

  today = DateTime.Now; return Newsletterctx.Subscribers.Count(o => o.Validated == false && o.ValidationEmailSent == true && SqlFunctions.DateAdd("month",1,o.SubscriptionDateTime)  

您必须在请求之外使用Datetime,因为您位于不使用System.Datetime Library的LINQ TO ENTITIES中。

如果您希望使用修复日期,您可以在请求之外定义它

DateTime compareDate = DateTime.Now.AddMonths(x);