Самое простое решение этой проблемы - установить ограничение по времени один раз за до , используя LINQ:
DateTime limit = DateTime.Now.AddMonths(-1);
List<Entities.Subscriber> items = (from s in context.Subscribers
where s.Validated == false && s.ValidationEmailSent == true &&
s.SubscriptionDateTime < limit)
select s).ToList();
Или более наглядно ИМО:
var items = context.Subscribers
.Where(s => !s.Validated &&
s.ValidationEmailSent &&
s.SubscriptionDateTime < limit)
.ToList();
Здесь нет никакого смысла в использовании выражения запроса, и явные сравнения с true
и false
являются отвратительным ИМО (если, конечно, ваши свойства не имеют тип Nullable<bool>
, конечно).