Подтвердить что ты не робот

BestPractices: приемлемо ли использование нескольких хранилищ в MVC-контроллере?

У меня есть много-много ассоциаций между Employee и Team. Суть сущности У меня есть репозиторий.

Теперь я использую ASP.NET MVC, и я создал EmployeeController. Я также создал View для редактирования Employee. Для этого представления мне нужен DropDownList со всеми командами. Проблема в том, что у моего EmployeeController только есть EmployeeRepository. Итак, как я могу получить все команды? Мое решение теперь состоит в использовании двух репозиториев.

Но это хорошее решение?

Могу ли я вместо этого создать TeamController и написать метод, возвращающий все команды (как бы я это сделал)?

4b9b3361

Ответ 1

Да, вполне приемлемо для контроллера иметь ссылки на два репозитория.

Фактически, мои контроллеры чаще работают с несколькими репозиториями.

Ответ 3

Хотите пойти умнее? Не используйте репозитории внутри контроллеров. Вместо этого используйте службы домена. Это звучит не так плохо, если вы думаете, что один контроллер интегрирует работу многих служб, не так ли?

Ответ 4

Как правило, вы создадите репозиторий для совокупного корня. Репозиторий будет иметь методы, возвращающие объекты, заполненные для контроллера.

Если сущности полностью не связаны в вашей модели домена, вы можете создать сервис, обертывающий два отдельных репозитория, чтобы получить нужные вам данные.