С 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) к константе.
Очевидное решение состоит в том, чтобы сначала выполнить запрос «сопоставить», а затем использовать литеральное значение во втором запросе, но я упростил приведенный здесь пример кода до основной проблемы (добавление дат в запросе) и фактически запрос является более сложным, и это не было бы идеально.
Приветствия