Что отличает Entity Framework от ADO.NET от других ORM на рынке? - PullRequest
4 голосов
/ 05 марта 2009

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

Ответы [ 6 ]

4 голосов
/ 05 марта 2009

Я написал пост в блоге об этом некоторое время назад . Короче говоря, он использует принципиально иной подход к ORM, чем Hibernate, ECO и другие ORM, на которые я смотрел. Вы можете подумать, что этот подход лучше, хуже или не важен, но если вы посмотрите достаточно глубоко, трудно оспорить, что он другой. Но не верьте мне на слово. Если вы действительно интересуетесь этой темой, я настоятельно рекомендую прочитать этот технический документ и это интервью в очереди ACM.

3 голосов
/ 05 марта 2009

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

Если вы настаиваете на использовании Entity Framework, в этом есть несколько хороших вещей. Хорошим является то, что он позволяет сложным отображением очень простым способом. И, конечно, потому что это технология Microsoft, интеграция с IDE приятна.

Но, как я уже сказал, я попробовал это, и я не верю, что оно готово для реального использования.

В любом случае, удачи в вашем проекте

1 голос
/ 05 марта 2009

ADO.NET не является ORM.

В основном разница в уровне абстракции, используемой в каждом.

С ADO вы в основном запрашиваете БД и используете результаты в качестве объектов, это как мост между СУБД и вашими объектами.

Вы моделируете свою БД, а затем создаете объект из этой модели. Вот почему это Entity Framework (сущности БД)

ORM предназначен не для запроса или представления записей базы данных в виде объектов (хотя, так или иначе, их используют все, в том числе и я), а для сохранения вашей объектной модели в реляционной базе данных.

Они являются объектно-реляционным отображением (не реляционно-объектным)

Таким образом, вы выбираете одну или другую, когда у вас есть модель предметной области, и вы хотите, чтобы что-то сохранилось (в СУБД), или когда у вас есть модель сущностей, и вы хотите использовать ее в качестве объектов в вашей приложение.

1 голос
/ 05 марта 2009

Из того, что я прочитал, он имеет хорошую поддержку удаленного взаимодействия / двоичной сериализации WCF, что многие ORM не очень хорошо поддерживают (если вообще). Возможно, стоит посмотреть, хотите ли вы создать расширенное приложение клиент / сервер / удаленное взаимодействие с ORM на стороне клиента.

0 голосов
/ 05 марта 2009

Некоторые из лучших специалистов в мире ORM в .NET, похоже, работают над такими проектами, как NHibernate (бесплатный открытый исходный код; я использую его) и LLBLGen Pro (коммерческий).

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

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

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