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