У меня есть коллекция объектов, которая имеет (помимо всего прочего) значение DateTime. Я хотел бы запросить БД (с Entity Framework) для всех сущностей, больших, чем определенный DateTime, а также получить значение closests во времени из этого DateTime. Временные точки распределены неравномерно, и я хочу только сделать один db roundtrip.Entity framework выбирает сущности больше, чем DateTime (плюс сущность до)
Пример: [{Т = 1}, {Т = 2}, {Т = 3}, {Т = 4}]
Так ... если я запрос БД для объекта с timevalue больше или равно T = 3, я также хочу вернуть значение T = 2. То есть
Результат: [{Т = 2}, {Т = 3}, {Т = 4}]
Возможно ли это? Если нет, возможно ли это в SQL?
Хорошее решение, но EF его не разрешит (что-то вроде «Вложенный запрос не разрешен»). Ближайшей возможной вещью будет Союз двух запросов ('> =' и '<' с 'Take (1)'). –
@GertArnold благодарит за заметку! Я проверил этот запрос в LinqPad с Linq to SQL. Я определенно должен проверить его в EF сейчас :) –
Благодарим вас за ответ. Еще не проверял, но все выглядит отлично. Кстати, есть ли у вас какие-либо идеи о том, как выполняется этот запрос, если я реализовал его как хранимую процедуру? – olif