Разделение EDM для повторного использования функциональности в нескольких проектах - PullRequest
0 голосов
/ 30 января 2011

В настоящее время у меня есть проект ASP .NET MVC / EF4, который содержит множество автономных функций, таких как ведение блога, события, конкурсы, вики и т. Д.

Все сущности, используемые каждой системой, отображаются в моей базе данных через один гигантский файл EDM.

Это хорошо работает для основного сайта, но у меня также есть несколько личных сайтов, на которых я хочу повторно использовать только функции ведения блога из основной сети.

Моя самая большая проблема заключается в том, что из-за EDM-файла mac daddy мои блог-сайты должны постоянно обновлять свои схемы базы данных, чтобы отразить изменения, внесенные в области функций, которые они не используют (т.е. изменения в системе событий).

Единственный другой недостаток заключается в том, что есть некоторые сущности (пользователи и теги), которые имеют отношения с сущностями из каждой области функциональности, что затрудняет простое разделение каждой области функциональности на собственный EDM.

С учетом всего сказанного я пытаюсь найти наиболее эффективный способ его настройки.

Должен ли я пойти по пути разделения EDM по каждой области (блоги, события, конкурсы, вики) и выяснить способ поддержания отношений для сущностей User и Tag?

Или, может, мне просто создать EDM для каждого веб-сайта, который отображает только те сущности, которые ему действительно нужны? Единственная проблема с этим состоит в том, что мой уровень репозитория принимает UnitOfWork / ObjectContext, и при создании новых ObjectContexts для каждого сайта у меня возникнут проблемы с повторным использованием кода моего репозитория.

1 Ответ

0 голосов
/ 30 января 2011

Вы можете настроить службу WCF, а затем передать свои данные через JSON-контракт.Таким образом, у вас будет центральная служба, которая хранит ваши EF-данные, а затем просто предоставляет функции, основанные на потребностях ваших различных приложений.сделано с учетом IoC, чтобы его можно было легко подключить), но если ваши данные EF сильно меняются, это означает, что вы можете обновить одну центральную службу без необходимости обновления каждого из ваших клиентских приложений.хорошая ссылка здесь на SO: https://stackoverflow.com/questions/973017/where-to-find-good-wcf-video-tutorials

...