Мой LINQ нечтоOrderByDescending с Пропустить и принять в LINQ показывает ошибку
GetPublishedArticleList().Where(x => x.Category.CatName == catName).OrderByDescending(x=>x.PublishedDate).Skip(skip).Take(last);
Я получаю следующее исключение, когда приведенный выше код запускается
«Метод„Пропустить“поддерживается только для отсортированного ввода в LINQ to Entities. Метод «OrderBy» должен быть вызван перед методом «Пропустить».
Ну, я хочу, чтобы LINQ понял, что мне нужно сначала упорядочить данные в порядке убывания, а затем применить Skip и Take. (ну, этот код работает, когда OrderByDescending заменяется на O rderBy)
Может ли кто-нибудь предложить мне альтернативу?
Не могли бы вы назвать Take first? Это вернет вам IEnumerable (из IOrderedQueryable), на который вы можете позвонить Skip. Если это будет бесполезно с вашими указателями, вы можете изменить его на «Take (skip + last) .Skip (skip)» – John
Вау - это действительно странно. Это звучит * как ошибка для меня ... –
@John: Нет, вызов 'Take' сначала нарушил бы результаты ... и дело в том, что здесь у меня есть IOrderedQueryable, а не' IOrderedEnumerable' - мы пытаемся уменьшить объем данных, передаваемых из базы данных. –