Начал .NET CORE изучать и назрел вопрос с выборкой данных:
Мне для двух экшенов по сути необходимо сделать одни и те же действия, я думаю эти действия вынести в метод. Вопрос, куда поместить этот метод? Оставить тут же в контроллере или такое надо выносить в сервисы/еще куда либо?
Как правильно это делается с точки зрения NET CORE?
Зависит...
Много от чего
Надо понимать контекст, потому что спектр решений широк: от "оставить как есть" до "вынести в сервис", от "сделать сущность доменной области и в ней метод" до "вынести в метод расширения"
Andrey, в таком случае вам нужно реализовать шаблон Repository, либо, действительно, взять EntityFramework в котором шаблоны Repository и UnitOfWork реализованы из коробки
Илья, при правильной архитектуре вы по сути отдаёте запрос наружу. Сверху висят фильтры авторизации, максимум что вам нужно это automapper (м) отмепить сущности и при необходимости закешировать их. Все решается по месту
Владимир Коротенко, ну запросы понятно. Для того что не изменяет состояние системы, логично. Но для команд могут быть сложные сценарии, в которых куски кода могут дублироваться.
PS. Когда я пишу «запрос» и «команда» я имею ввиду термины CQRS
Илья, Так и выносите их. Рефакторинг в общем то для этого и придумали.
Причем это ложится в проектные методики нечеткого планирования.
Вы сделали на коленке, допустим фэйсбук, потом допилили.