2010-05-18 2 views
1

Итак, я искал ответ на этот вопрос, но ничего не нашелЕсть ли ORM, который позволяет «плагину» расширять базу данных?

У меня есть модель структуры Entity (MyModel1) - сейчас мы скажем, что это содержит таблицу «Пользователи»

это часть большого приложения, который имеет ссылки на проект «адрес»

проект адреса содержит рамочную модель Entity (MyModel2), это содержит таблицу пользователей, и таблицу адресов (указывая на одна и та же база данных

Главное приложение имеет элемент управления, который редактирует пользователя, и в этом контроле l он имеет «адресный» контроль, который фактически существует в проекте «Адреса».

Для выполнения этой работы пользовательский элемент управления передает объект «Пользователь» до элемента управления адресами, однако, поскольку Пользователь, который был передан, принадлежит MyModel1, а не MyModel2, должен быть загружен другой объект пользователя, тогда он может быть загружен используемый.

Это не идеальный вариант, поскольку мне пришлось дважды загружать пользователя. Есть ли способ сказать, что MyModel2 расширяет MyModel1, что фактически просто добавляет отношение к «User». Или есть ORM, который бы справился с этим лучше? Или даже шаблон дизайна, который бы справился с этим лучше?

+0

Какую платформу вы используете? Java, .NET или что-то еще? –

+0

извините, ASP.Net C# – Paul

ответ

0

Я обнаружил Fluent NHibernate, который, кажется, чтобы дать мне кучу больше контроля над тем, как слой данных, вместе взятые, через какой-то серьезно сумасшедшей код, который я был в состоянии расширить объекты в плагине виде пути, очень крутой

-1

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

Лучшим подходом было бы превратить ваш уровень доступа к данным в отдельный проект отдельно от бизнес-логики и пользовательского интерфейса. Создайте EDMX, который включает в себя как пользователей, так и Адреса, и предоставит единый ObjectContext, который можно использовать для обработки всего процесса.

Посмотрите также на шаблон хранилища.

+0

Хорошо, поэтому пример плохой, но можно с уверенностью предположить, что на самом деле невозможно разместить пользователей и адреса в один и тот же файл edmx. То, что вы описываете, идеально, но в этом случае невозможно. – Paul

Смежные вопросы