Пейджинг linq не возвращает правильную страницу, если все значения столбца сортировки одинаковыC#

Место общения программистов C#
Anonymous
Пейджинг linq не возвращает правильную страницу, если все значения столбца сортировки одинаковы

Сообщение Anonymous »

С помощью следующего кода:

repository.Invoices.OrderBy(i => i.Date).Skip(page * 10).Take(10)


Если у меня 100 счетов-фактур, 50 из которых выставлены на одну и ту же дату, то для первых 5 страниц я получаю точно такой же набор результатов (то есть записи 1–10). . Чтобы обойти эту проблему, мне также нужно выполнить сортировку по уникальному ключу:

repository.Invoices.OrderBy(i => i.Date).ThenBy(i => i.Id).Skip(page * 10).Take(10)


Есть ли более «правильный» способ гарантировать, что подкачка работает должным образом? Я использую SQL Server 2014, который преобразует код пропуска/принятия в

OFFSET x ROWS FETCH NEXT 10 ROWS ONLY


Подробнее здесь: https://stackoverflow.com/questions/348 ... e-the-same

Вернуться в «C#»