Какие ORM способны создавать сущности из таблиц, принадлежащих нескольким физическим источникам данных? - PullRequest
0 голосов
/ 29 октября 2010

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

EF выглядит многообещающе, по крайней мере, на бумаге: В этом блоге упоминается, что «вы можете смешивать и сопоставлять несколько разных поставщиков баз данных, серверов приложений или протоколов для создания агрегированной совокупности объектов, созданных из различных таблиц, источников, служб и т. д.»Я не уверен, что NHibernate способен на это, но, полагаю, мне пришлось бы пожертвовать синтаксисом Fluent NHibernate, если бы я смешивал столбцы из таблиц из разных источников данных в одном и том же логическом объекте.

Эта функция может быть довольно сложнойдля обновления данных - ORM придется управлять распределенными транзакциями, не так ли?

Так что, если у вас был хороший или плохой опыт с таким подходом, пожалуйста, поделитесь им.

1 Ответ

1 голос
/ 29 октября 2010

Я могу поручиться за EF, работающую с несколькими источниками данных, но в итоге я решил не использовать его для моего текущего проекта, потому что проекту требовался доступ к источникам данных, где схемы базы данных были несколько произвольными - что я уверен, EF мог справиться, за исключением того, что я не хотел иметь дело с огромными накладными расходами на его настройку, а затем не мог использовать графический интерфейс, потому что я все равно менял вещи во время выполнения.(По крайней мере, это мое плохое понимание ситуации.)

Если ваш проект имеет относительно стабильные базы данных, тогда обязательно используйте EF!Мне очень понравилось работать с EF.

Я бы порекомендовал Программирование Entity Framework в качестве превосходного ресурса с пошаговыми руководствами и достаточным количеством деталей для опытных программистов.

[РЕДАКТИРОВАТЬ] NB. Я использовал EF 4.0 с .NET 4.0 и VS2010.

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