Я написал два разных запроса, первый из которых должен получить первые 5 объектов, а затем следующий должен получить следующие 5 объектов, заказанных приобретенным стоимость. Проблема в том, что два значения в середине одинаковы, и когда я беру первые пять объектов, а затем пропускаю первые пять объектов и беру следующие пять объектов, последний объект первого набора совпадает с первым значением второй набор и объект с тем же купленным значением, что и этот объект, никогда не отображаются. Мои запросы ниже.Take() принимает разные значения, чем Skip() skips
var query = (from v in db.VideoGames
where v.gamesystem == "PC"
orderby v.purchased descending
select v).Take(5);
var query2 = (from v in db.VideoGames
where v.gamesystem == "PC"
orderby v.purchased descending
select v).Skip(5).Take(5);
Я хотел бы знать, есть ли что-то, что я могу сделать по-другому, чтобы это не происходило.
Редактировать: Я чувствую, что мое объяснение может быть немного запутанным, поэтому я собираюсь добавить пример, содержащий 10 объектов VideoGame в базе данных и там купленное значение.
- VideoGame1.purchased = 1,
- VideoGame2.purchased = 2,
- VideoGame3.purchased = 3,
- VideoGame4.purchased = 4,
- VideoGame5.purchased = 5,
- VideoGame6.purchased = 5,
- VideoGame7.purchased = 7,
- VideoGame8.purchased = 8,
- VideoGame9.purchased = 9,
- VideoGame10.purchased = 10
Вот что я получаю
query
: VideoGame10, VideoGame9, VideoGame8, VideoGame7, VideoGame5
query2
: VideoGame5, VideoGame4, VideoGame3, VideoGame2, VideoGame1
Вот что я хочу
query
: VideoGame10, VideoGame9, VideoGame8, VideoGame7, VideoGame6
query2
: VideoGame5, VideoGame4, VideoGame3, VideoGame2, VideoGame1
Я не волнует, если я получаю VideoGame5 в первом запросе, только до тех пор, поскольку я получаю как объект VideoGame5, так и объект VideoGame6.
Ваш код верный, это, вероятно, код 18. https://ideone.com/fF1GL4 –
@MatthewHaugen Нет, это не так. Дело в том, что если у вас есть элемент, указанный дважды, и вы сортируете и разбиваете страницу на этот дубликат в сортировке, чтобы убедиться, что один элемент всегда остается на одной стороне перерыва, а один элемент остается на другой стороне разрыва , –
Не опечатка и Скотт выложили решение. – jma