Существует ли ORM, который позволяет «плагину» расширять базу данных? - PullRequest
1 голос
/ 19 мая 2010

Итак, я искал ответ на этот вопрос, но ничего не могу найти

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

Это часть большого приложения, в котором есть ссылки на проект "Адреса"

Проект адресов содержит модель Entity Framework (MyModel2), таблицу Users и таблицу адресов (указывающую на ту же базу данных.

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

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

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

Ответы [ 2 ]

0 голосов
/ 22 октября 2010

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

0 голосов
/ 19 мая 2010

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

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

Взгляните и на шаблон Repository.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...