Ваша проблема в том, что вы используете Date
вместо DateTime
. Date
не является стандартным типом .NET - скорее всего, из какой-то другой DLL, на которую вы ссылались в своем проекте.
Это означает, что он не сопоставим с DateTime
, который является типом данных, которые вы конвертируете при извлечении данных из Umbraco (а также типом, который мы используем для внутреннего хранения дат в Umbraco).
Как уже упоминалось в другом ответе, вы также должны использовать метод .GetPropertyValue<DateTime>()
, чтобы Umbraco просто сделал преобразование за вас. Это немного упростит ваш код.
Кроме того - ваш запрос работает нормально, если вы просто измените его на DateTime
вместо Date
- я только что сам это проверил.
Попробуйте сначала поместить дату в переменную, чтобы избежать создания новых экземпляров DateTime
внутри Where
:
var currentYear = new DateTime(2018, 1, 1);
var press = Model.Content.Children.Where(x => x.GetPropertyValue<DateTime>("publicationDate") > currentYear);
// or your way:
var press = Model.Content.Children.Where(w => Convert.ToDateTime(w.GetPropertyValue("publicationDate")) >= date);