У меня есть таблица со столбцом DateTime "TimeStamp" и столбцом int "TimeoutSeconds". Я хочу получить все записи из этой таблицы, где DateTime.Now - TimeStamp> TimeoutSeconds. В хранимых процессах это было легко, используя GetDate ():
select * from Schema.TableName mp
where (GetDate() - mp.[Timestamp]) > mp.Timeout
Однако с Entity Framework, использующим синтаксис LINQ или Lambda, я не могу этого сделать, потому что кажется, что входная переменная Lambda (mp) не может использоваться как часть вычисления только как часть предиката, поэтому это не компилируется: 1004 *
var records = context.TableName.Where(mp => (DateTime.Now - mp.TimeStamp) > mp.Timeout);
Это не компилируется.
Я не хочу извлекать всю таблицу, а затем выполнять фильтрацию в памяти и не буду использовать хранимый процесс или Entity SQL. Какие у меня есть варианты?