1) Репозиторий - коллекция, и методы работы с ней как с коллекцией, ничего лишнего.
2) Controller - посредник между View и Model (стиль MVC). В нем не должно быть никакой бизнес логики, а значит и открытия коннекта и выполнения запроса с его текстом. Тут должен быть вызов компетентного исполнителя - сервиса.
Рекоменую посмотреть на - CleanArchitecture
https://github.com/jasontaylordev/CleanArchitecture
Посмотрите на готовые сайты:
https://github.com/nopSolutions/nopCommerce
https://github.com/simplcommerce/SimplCommerce
И крутого монстра -
https://github.com/dotnet-architecture/eShopOnCont...
Все сразу не запомнится и не зайдет, это долгий путь.
Самый лучший курс от 0 до норм понимания -
https://codewithmosh.com/p/become-a-full-stack-net...
Состоит из трех частей, где автор создает готовое приложение вроде мини соц сети с музыкой, вроде.
Можно в целом его посмотреть, и делать как он, не промахнешся.