#c# #.net-core #sql-order-by #default
#c# #.net-core #sql-order-by #По умолчанию
Вопрос:
Когда я получаю коллекцию объектов из DbContext, можно ли установить порядок по умолчанию?
Например, скажем, у меня есть коллекция клиентов. Внутри моего контроллера я могу просто сделать: _context.Customers.Where(.....)
, вернуть список.
Однако у меня может быть несколько вызовов _context.Customers.Where(.....)
, и я не хочу добавлять порядок к каждому экземпляру. Вместо этого я хочу, чтобы упорядочивание происходило при автоматическом получении данных.
Я использую .NET Core 2.1.
Комментарии:
1. Для этого можно создать хранимую процедуру, которая принимает
Where
аргументы в качестве параметров. Вместо запроса ваших данных через linqsWhere
вы бы вызвали хранимую процедуру. Но это зависит от сложности вашихWhere
предложений.2. Спасибо за быстрый ответ, объяснил бы, почему я не смог найти никакой информации об этом.
Ответ №1:
НЕТ, невозможно, поскольку это явная операция. То же, что и в SQL, где вам нужно будет применить order by
предложение, чтобы получить упорядоченные данные, иначе порядок не гарантируется.
Итак, в вашем случае вам придется применить OrderBy()
явное выражение _context.Customers.Where(.....).OrderBy(...)
. Хотя вы можете перенести эту операцию в метод, вероятно, чтобы сделать ее многоразовой