Итак, я пытаюсь применить лучшие практики на этапе проектирования системы. Я собираюсь использовать контейнер DI (ninject) с Entity Framework 4, ASP.NET MVC 3 C # и шаблоном репозитория / единицы работы.
У меня будут модели, в которых таблицы каждой базы данных сопоставлены с классами.
У меня будет строка подключения для каждой базы данных в web.config.
Я собираюсь иметь класс для каждой строки подключения (названный так же в соответствии с соглашением EF), который наследуется от DbContext и имеет DbSet для каждой таблицы.
Я собираюсь иметь абстрактный интерфейс репозитория для каждого объекта базы данных, названного в соответствии с соглашением ITRepository, где T - это имя объекта базы данных (ICarRepository для объекта базы данных Car). Каждый интерфейс репозитория будет содержать IQueryable для сущности, а также определять, какие методы должны быть доступны.
У меня будет конкретный репозиторий EFTRepository, который наследуется от ITRepository и определяет, как работают открытые методы.
У меня будет
GenericRepository<TEntity>
, определенный для использования с объектами, которым требуется только минимальный доступ, например базовый CRUD.
Я собираюсь использовать ControllerFactory из
ninject в качестве контейнера DI.
Я собираюсь присоединить фабрику контроллеров к объектам в Application_Start ().
Я собираюсь связать все свои зависимости, такие как
Bind<ITRepository>().To<EFTRepository>()
, в фабричном методе AddBindings ().
Я собираюсь реализовать шаблон единиц работы для каждой базы данных и придерживаться правил именования UnitOfWorkDB (UnitOfWorkAutomobile для базы данных Automobile).
Единица работы будет содержать соответствующий контекст базы данных и репозитории.
Я пойду об этом, верно? Я не использовал этот набор шаблонов раньше и хочу убедиться, что буду использовать их правильно. Критика приветствуется!