Как я могу создать отдельные проекты, содержащие относительные объекты (POCO), используя EF, а затем получить к ним доступ из одного проекта - PullRequest
0 голосов
/ 27 февраля 2012

Считайте, что я хочу разработать крупное корпоративное приложение.В моем приложении у меня есть несколько модулей, например:

Покупка, Инвентарь, Счета, Расчет заработной платы, HR и так далее.Я разработаю каждый из этих модулей по отдельности.

Я хочу создать проект библиотеки классов, который состоит из моих сущностей, что означает POCO.

Что будет хорошей практикой для создания сущностей?

  1. Создание всех сущностей в одном проекте или:
  2. Создание отдельного проекта, содержащего относительные сущности.

Если я хочу создать отдельный проект, содержащий относительные сущноститогда как мне их создавать и как их интегрировать?

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

В настоящее время мы работаем с чем-то вроде этого: несколько модулей с собственными сущностями. Каждый модуль имеет свои собственные классы POCO, которые могут зависеть от классов «общего пользования» (например, «Пользователь» или «Роль»).

Классы Poco могут быть объявлены в любом пространстве имен. Главное, что соединяет ваши классы poco с базой данных, это класс DbContext. Вы можете создать несколько DbContexts для одной базы данных (один для модуля в нашем случае). Этот dbContexts может иметь собственные pocos и может использовать любое количество pocos из других контекстов (поле DbSet для одного poco должно быть объявлено только в одном DbContext). Все DbContexts должны использовать одну и ту же строку подключения. Все таблицы и зависимости будут созданы автоматически. Звучит как магия.

Спросите, нужна ли вам какая-либо информация.

Если у вас есть время для исследований, посмотрите проект nopCommerce. Они реализовали то, что вас интересует. http://nopcommerce.codeplex.com/

0 голосов
/ 27 февраля 2012

Если бы это был я, я бы создал единую концептуальную модель (если только вам не требуется возможность самостоятельно выпускать «Покупка» и «Инвентаризация» и т. Д.) Внутри библиотеки классов C #.

Я бы затем импортировал эту библиотеку в каждый отдельный модуль, который вы разрабатываете.Каждый модуль должен иметь возможность доступа к вашему модельному проекту без проблем, и у вас будет одно место, если вам нужно будет добавить другие объекты в будущем.

...