Добавить дату в Linq to Entities

С помощью Linq to Entities я пытаюсь запросить таблицу журнала, чтобы найти строки рядом с соответствующей строкой. У меня возникли проблемы с добавлением даты в запрос. Это то, что у меня есть до сих пор.

from
    l in objectSet.Logs
let
    match = objectSet.Logs.Where(whatever).FirstOrDefault()
where
       l.Timestamp > (match.Timestamp - twoHours)
    && l.Timestamp < (match.Timestamp + twoHours)
select
    l

Не считая условия «что угодно», которое находит интересующую меня строку, «twoHours» может быть временным интервалом, функцией .AddHours () и так далее. Я не нашел правильного способа, которым EF может генерировать SQL, который добавляет значение из поля (match.Timestamp) к константе.

Очевидное решение состоит в том, чтобы сначала выполнить запрос «сопоставления», а затем использовать буквальное значение во втором запросе, но я упростил приведенный здесь пример кода до основной проблемы (добавление дат в запрос), и на самом деле мой запрос более сложен, и это было бы не идеально.

Ура

8
задан leppie 1 December 2014 в 11:32
поделиться