Хотя я в принципе согласен с идеей, что сортировка - это бизнес-логика, потому что, разбив ее на ее происхождение, вы получите что-то вроде «Клиент хотел бы, чтобы страница продукта отображалась с изображениями, отсортированными по дате», тогда становится ясно, что порядок сортировки данных, как правило, не является произвольным - даже если сортировка не выполняется, так как это все еще является бизнес-решением по причине пропуска (пустой список по-прежнему остается списком).
НО ... Эти ответы, кажется, не учитывают достижения в технологии ORM, я могу говорить только в отношении Entity Framework (давайте избегать споров о том, является ли это истинным ORM, это не главное) от Microsoft как это то, что я использую, но я уверен, что другие ORM предлагают аналогичную функциональность.
Если я создам строго типизированное представление для класса Product, используя MS MVC и Entity Framework, и между таблицей Product и Image (например, FK_Product_Image_ProductId) есть связь по внешнему ключу, то я смог бы быстро выполнить сортировку из коробки. изображения во время их отображения, используя что-то вроде этого в представлении:
@foreach(Image i in Model.Image.OrderBy(e => e.DisplayOrder)){ //etc etc... }
Было упомянуто о конкретном слое бизнес-логики, который я также использую для выполнения 80% своей бизнес-логики, но я не собираюсь вписывать функциональность сортировки в свой слой бизнес-логики, который имитирует что-то из коробки из Entity Framework.
Я не думаю, что есть правильный ответ на этот вопрос, кроме как сказать это; Вы должны абстрагироваться от сложной бизнес-логики, где это возможно, но не за счет изобретения колеса.