LINQ to Entities для вычитания 2 дат

datetime entity-framework linq-to-entities

Вопрос

Я пытаюсь определить количество дней между двумя датами, используя LINQ с Entity Framework. Это говорит мне, что он не распознает Subtract в классе System.TimeSpan

Здесь моя часть запроса LINQ.

where ((DateTime.Now.Subtract(vid.CreatedDate).TotalDays < maxAgeInDays))

Вот ошибка, которую я получаю в отладчике VS.NET

{"LINQ to Entities не распознает метод метода System.TimeSpan Subtract (System.DateTime) ', и этот метод нельзя преобразовать в выражение хранилища."}

Я делаю что-то не так или есть лучший способ получить количество дней между 2 DateTimes в рамках сущности?

спасибо Майкл

Принятый ответ

Вот как я получил это на работу

Я определил переменную datetime, которая представляет самую старую дату

DateTime oldestDate = DateTime.Now.Subtract(new TimeSpan(maxAgeInDays, 0, 0, 0, 0));
...

Затем я изменил часть где запрос LINQ

where (vid.CreatedDate >= oldestDate )

работал как шарм - спасибо Михе, что заставил меня задуматься о дереве выражений


Популярные ответы

Принятый ответ лучше в этом случае, но для справки вы можете использовать класс EntityFunctions для выполнения операций над датами, среди прочего.

where (vid.CreatedDate >= EntityFunctions.AddDays(DateTime.Now, -maxAgeInDay))


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему