Moje LINQ jest cośOrderByDescending z wyboru i podjąć w LINQ pokazuje błąd
GetPublishedArticleList().Where(x => x.Category.CatName == catName).OrderByDescending(x=>x.PublishedDate).Skip(skip).Take(last);
otrzymuję następujący wyjątek, gdy powyższy kod jest uruchamiany
„Metoda«Skip»jest obsługiwana tylko dla wejścia segregowanych Metoda "OrderBy" musi zostać wywołana przed metodą "Pomiń"
Chcę, aby LINQ zrozumiał, że najpierw muszę zamówić dane w porządku malejącym, a następnie zastosować Skip i Take. (cóż powyższy kod działa, gdy OrderByDescending jest zamieniany na O rderBy)
Czy ktoś może zaproponować mi alternatywę?
Czy możesz zadzwonić Najpierw? To zwróci ci IEnumerable (z IOrderedQueryable), na który możesz zadzwonić Skip. Jeśli to zepsułoby twoje oznaczenia, możesz zmienić je na 'Take (skip + last) .Skip (pomiń)' – John
Wow - to naprawdę dziwne. To * brzmi * jak błąd dla mnie ... –
@John: Nie, wywołanie 'Take' na początku mogłoby złamać wyniki ... i chodzi o to, że mamy tutaj' IOrderedQueryable', a nie 'IOrderedEnumerable' - próbujemy zmniejszyć ilość danych przesyłanych z bazy danych. –