В настоящее время у меня есть проект ASP .NET MVC / EF4, который содержит множество автономных функций, таких как ведение блога, события, конкурсы, вики и т. Д.
Все сущности, используемые каждой системой, отображаются в моей базе данных через один гигантский файл EDM.
Это хорошо работает для основного сайта, но у меня также есть несколько личных сайтов, на которых я хочу повторно использовать только функции ведения блога из основной сети.
Моя самая большая проблема заключается в том, что из-за EDM-файла mac daddy мои блог-сайты должны постоянно обновлять свои схемы базы данных, чтобы отразить изменения, внесенные в области функций, которые они не используют (т.е. изменения в системе событий).
Единственный другой недостаток заключается в том, что есть некоторые сущности (пользователи и теги), которые имеют отношения с сущностями из каждой области функциональности, что затрудняет простое разделение каждой области функциональности на собственный EDM.
С учетом всего сказанного я пытаюсь найти наиболее эффективный способ его настройки.
Должен ли я пойти по пути разделения EDM по каждой области (блоги, события, конкурсы, вики) и выяснить способ поддержания отношений для сущностей User и Tag?
Или, может, мне просто создать EDM для каждого веб-сайта, который отображает только те сущности, которые ему действительно нужны? Единственная проблема с этим состоит в том, что мой уровень репозитория принимает UnitOfWork / ObjectContext, и при создании новых ObjectContexts для каждого сайта у меня возникнут проблемы с повторным использованием кода моего репозитория.