Мой, что для "Ничего из вышеперечисленного". Я предпочитаю использовать модели представления для представлений, а модели представления не нуждаются в репозитории. Для этого есть множество причин:
- Использование моделей презентации позволяет проектировать представления и контроллеры до проектирования модели и базы данных. Таким образом, вы можете получить пользовательский ввод рано.
- Модели презентаций позволяют передавать довольно «плоскую» модель в представление, поэтому вам не нужно беспокоиться о проблемах ORM, таких как отложенная загрузка.
- Презентационные модели часто упрощают привязку моделей.
- При использовании модели презентации вам не нужно беспокоиться о случайном возврате полей, которые не должен быть виден определенному пользователю, или о случайном обновлении полей, которые пользователь не должен обновлять, поскольку вы не получили белый список правильный.
Теперь, более конкретно, следуя строке вашего вопроса: вы создали экземпляр модели презентации? Сколько репозиториев нужно? Ну, этот вопрос сейчас почти отвечает сам. Вы разрабатываете модель представления в соответствии с требованиями представления. Вы проектируете репозитории в соответствии с хорошими практиками TDD, включая идентификацию совокупных корней. Теперь вопрос о том, «сколько репозиториев мне нужно, чтобы создать экземпляр этой модели», прост. Вы изучаете совокупные корни, требуемые моделью, и используете те, которые вам нужны. Как правило, я могу сделать это в одном запросе LINQ.