LINQ to Entities с методом AddMonth
Это мой код:
return Newsletterctx.Subscribers.Count(o =>
o.Validated == false &&
o.ValidationEmailSent == true &&
o.SubscriptionDateTime.AddMonths(1) < DateTime.Now);
Я получаю эту ошибку:
LINQ to Entities не распознает метод 'System.DateTime AddMonths (Int32) ", и это метод не может быть переведен в хранить выражение.
Ответы
Ответ 1
Возможно, вы можете перенести дату, чтобы протестировать против:
DateTime testDate = DateTime.Now.AddMonths(-1);
return Newsletterctx.Subscribers.Count
(o => o.Validated == false
&& o.ValidationEmailSent == true
&& o.SubscriptionDateTime < testDate);
Ответ 2
Вы можете использовать SqlFunctions classvar;
today = DateTime.Now; return Newsletterctx.Subscribers.Count(o =>
o.Validated == false &&
o.ValidationEmailSent == true &&
SqlFunctions.DateAdd("month",1,o.SubscriptionDateTime) <today);
Ответ 3
Вы должны использовать Datetime вне запроса, потому что вы находитесь в LINQ TO ENTITIES, которые не используют System.Datetime Library.
Если вы хотите использовать дату фиксации, вы можете определить ее вне запроса как
DateTime compareDate = DateTime.Now.AddMonths(x);