ORM для абстрагирования традиционной базы данных плюс сервис WCF - PullRequest
3 голосов
/ 03 февраля 2010

Предположим, кто-то использует Microsoft Entity Framework в качестве ORM для абстрагирования / работы с базой данных. Далее следует требование, которое заставляет приложение работать одновременно со службой WCF и традиционной базой данных.

Насколько мне известно, не существует инструмента ORM, который мог бы абстрагировать службу WCF так же, как Entity Framework.

Есть ли на рынке что-нибудь, что может помочь с этой задачей? Цель состоит в том, чтобы абстрагировать WCF и традиционную базу данных таким образом, чтобы программисту домена казалось, что они работают с одной базой данных. Они не должны заботиться или беспокоиться о том, что нижележащие объекты рассекаются и сохраняются в нескольких местах (WCF или база данных)

--- РЕДАКТИРОВАТЬ ---

Обратите внимание, что служба WCF является третьей стороной, которую мы не контролируем. Но в то же время нам нужно поговорить и с совершенно другой базой данных, которая оказывается традиционной базой данных MS Sql.

Ответы [ 2 ]

4 голосов
/ 03 февраля 2010

Ну, я думаю, что вы тут немного запутались:

ORM необходим для преодоления «разрыва» между объектными и реляционными данными - вам необходимо отобразить строки и столбцы в вашей реляционной базе данных и ваши объекты со свойствами в вашем ОО-мире. Это работа ORM, и вот в чем эти инструменты хороши (более или менее).

Однако: служба WCF - это просто способ перемещения вокруг объектов - я не вижу здесь никакого пробела или несоответствия для «отображения» здесь. Да, есть ряд проблем, с которыми вам нужно разобраться, и вам нужно подумать - но в основном службы WCF отправят вам обратно (обычно) объект или набор объектов или что-то в этом роде.

Так что на самом деле, если у вас есть ORM, выполняющий сопоставление между вашей реляционной базой данных и вашей объектной моделью, у вас уже есть объекты - WCF - просто способ сделать их доступными для внешнего мира и т. Д. - но реального сопоставления между ними нет. здесь два несопоставимых мира.

Если вам нужно сопоставить ваши EF-сущности с некоторыми более легкими объектами преобразования данных (DTO), которые будут отправлены через службу WCF, вам может понадобиться взглянуть на AutoMapper , чтобы легко отобразить между двумя разные предметы. Но опять же: вы принципиально не устраняете здесь какие-либо технологические пробелы - просто сопоставляете два набора объектов.

4 голосов
/ 03 февраля 2010

Посмотрите на новые службы данных WCF.

Когда доступен .net 4, вы сможете использовать EF с обычными старыми объектами CLR (POCO).

http://msdn.microsoft.com/en-us/data/bb931106.aspx

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