Я создаю приложение MVC3, пытаюсь использовать IoC и инжектор конструктора. В моей базе данных (пока) около 50 таблиц. Я использую EF4 (с шаблоном POCO T4) для моего кода ЦАП. Я использую шаблон репозитория, и каждая таблица имеет свой собственный репозиторий. Мои сервисные классы в моем сервисном слое вводятся через эти репозитории.
Проблема: Мои классы обслуживания растут в количестве необходимых им репозиториев. В некоторых случаях я подхожу к 10 репозиториям, и они начинают пахнуть.
Существует ли общий подход к проектированию репозиториев и классов обслуживания так, чтобы сервисам не требовалось так много репозиториев?
Вот мои мысли, я просто не уверен, какой из них правильный:
1) Это признак того, что я должен рассмотреть возможность объединения / группировки моих репозиториев в связанные разделы таблиц, сокращения количества или зависимых репозиториев для класса обслуживания. Однако проблема с этим подходом заключается в том, что он раздувает и усложняет мои репозитории и лишает меня возможности использовать общий интерфейс для всех репозиториев (стандартные методы поиска / обновления данных).
2) Это признак того, что я должен подумать о том, чтобы разбить свои сервисы на группы на основе моих репозиториев (таблиц). Проблема в том, что некоторые из моих методов обслуживания имеют общую реализацию, и разбивка их по классам может усложнить мои зависимости.
3) Это признак того, что я не знаю, что делаю, и что-то в корне неправильно, что я даже не могу увидеть.
ОБНОВЛЕНИЕ: Чтобы узнать, как я реализую EF4 и репозитории, ознакомьтесь с этим примером приложения в codeplex (я использовал версия 1 ). Однако, глядя на некоторые комментарии там (и здесь), похоже, что мне нужно немного больше почитать, чтобы убедиться, что это тот путь, по которому я хочу идти - звучит так, как будто это не так.