Один из способов сделать это - разбить этот запрос на две части.Один фрагмент выполняется для базы данных, а второй выполняется на клиенте следующим образом:
// This executes against the database
var query1 = from searchSchedule in db.SearchSchedules
where searchSchedule.Active.Value
&& searchSchedule.PublishingConfigurationId == pubConfig.Id
select searchSchedule;
// This executes on the client
var query2 = from query1 as IEnumerable()
where query1.LastChecked.Value < DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(query1.CheckFrequencyMinutes))
Я часто делаю подобные запросы, когда хочу включить в запрос функцию, которую SQL Server не будетзнаю, как справиться.Во втором запросе преобразование query1 в IEnumerable заставит его выполняться на клиенте вместо .NET Framework вместо вашей базы данных.
Вам нужно будет определить, сколько строк может потребоваться обработать вклиент, чтобы определить, насколько эффективно это может быть.