Хотя, конечно, можно отсортировать список на любом слое, но вы должны помнить о последствиях по своему выбору.
Если вы имеете дело с большим набором данных, вы можете отсортировать его по адресууровень базы данных (по соображениям производительности).Если набор данных небольшой, это не проблема.
Если вы выполняете сортировку на уровне доступа к данным: вам нужно либо передать параметры сортировки вашим GetList
методам, либо подвергнуть всех вызывающих методов одному и тому жепорядок сортировки.
Я рассматриваю порядок сортировки как часть пользовательского интерфейса, и это лучше всего обрабатывать на уровне представления (в вашем случае действие контроллера). Обновление в ответ на комментарий @Rushino: Если вы делаете нумерацию страниц на уровне базы данных, у вас нет выбора, кроме как сортировать на уровне базы данных. Обновление 2 Вот почему вам нужно сортировать на уровне базы данных, когда вы делаете нумерацию страниц на уровне базы данных.Я продемонстрирую на примере: приведенные примеры данных:
326451
Сценарий 1: разбиение на страницы в базе данных, сортировка в слое данных
При запросе страницы 1 (с размером страницы 3) база данных вернется:
326
Слой данных затем отсортирует это и вернет:
236
Сценарий 2: сортировка и разбиение на страницы в базе данных
При запросе страницы 1 (с размером страницы 3) база данных будет сортироваться первой:
123456
Затем верните страницу 1 на уровень данных:
123
Как видите, причина сортировки в базе данных при разбивке на страницы не в объеме данных.Это потому, что это единственный способ получить правильные результаты.