Можно ли установить порядок по некоторому полю по умолчанию?

#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 аргументы в качестве параметров. Вместо запроса ваших данных через linqs Where вы бы вызвали хранимую процедуру. Но это зависит от сложности ваших Where предложений.

2. Спасибо за быстрый ответ, объяснил бы, почему я не смог найти никакой информации об этом.

Ответ №1:

НЕТ, невозможно, поскольку это явная операция. То же, что и в SQL, где вам нужно будет применить order by предложение, чтобы получить упорядоченные данные, иначе порядок не гарантируется.

Итак, в вашем случае вам придется применить OrderBy() явное выражение _context.Customers.Where(.....).OrderBy(...) . Хотя вы можете перенести эту операцию в метод, вероятно, чтобы сделать ее многоразовой