Информация
- В рейтинге
- Не участвует
- Откуда
- Ростов-на-Дону, Ростовская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Бэкенд разработчик, Менеджер сообщества
Ведущий
C#
.NET Core
Базы данных
Высоконагруженные системы
Проектирование архитектуры приложений
Проектирование баз данных
C++
Python
SRE
Во-первых, можно создать другую реализацию IRepository и работать с другим источником. Достаточно будет реализовать репозитории, не потребуется переписывать весь код, который использовал DBContext. Скрее всего достаточно будет поправить 2 класса — RepositoryBase и RepositoryContext.
Во-вторых (сводится к п.1), можно легко замокать репозиторий и написать юнит-тест на бизнес-логику.
В-третьих, простота расширения. Из реализации на GitHub я удалил часть интерфейса IRepository, связанного с использованием автомаппинга и извлечения недоменных объектов, связанных через AutoMapper с Entity, но достаточно добавить этот код в одном месте и он станет доступен для всех сущностей.
Я согласен, что репозиторий сам по себе является спорным шаблоном, есть UoF и CQRS, но статья немного о другом.
Очень удобно для новых и особенно некрупных (до 100.000 строк) проектов, когда модель данных меняется в процессе уточнений — можно написать POCO-объект и к нему сразу появится готовый репозиторий в контейнере. Пишите только бизнес-логику, не инфраструктуру.