Ошибка описывает именно то, что требуется - ваша последовательность должна быть заказана, прежде чем пропустить/принять во внимание любой смысл. Вы уже знаете, какой заказ вы хотите - вам просто нужно сделать это раньше в логическом конвейере, чем пейджинг. Кроме того, нет смысла использовать выражение запроса здесь. Я предлагаю вам использовать:
var query = db.Projects
.OrderByDescending(c => c.ProjectId)
.Skip(2)
.Take(2);
(. Это может быть все в одной строке, если вы действительно хотите, чтобы это было, но я считаю, что проще понять трубопровод, если он выкладывается вертикально)
Обратите внимание, что Я также перевернутый порядок Skip
и Take
- вы почти никогда не хотят Take
перед тем Skip
... в примере кода, вы показали Take(2).Skip(2)
, который никогда не дал результатов ... результат Take(2)
части является последовательность с не более чем двумя результатами, а затем Skip(2)
пропускает первые два о тех результатах ... ничего не оставляя. Как правило, у вас есть что-то вроде:
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
метода _The «OrderBy» должно быть вызвано ** ** перед тем метод «Skip'_ должен быть очевиден –
Не каждый может читать. Многие, которые отказываются читать, все еще пытаются программировать. – TomTom