Чем Entity Framework отличается от обычного ORM? - PullRequest
1 голос
/ 08 апреля 2011

Как следует из названия: Почему люди, включая Microsoft, говорят, что ORM - это только функция в Entity Framework?Чем он отличается от типичного ORM?Для меня EDM - это то же самое, что и отображение XMl из nHibernate.Почему Microsoft говорит, что это не одно и то же?

Ответы [ 2 ]

4 голосов
/ 08 апреля 2011

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

Вы можете выполнять сопоставления в EF, где один объект .NET отображается на несколько таблиц базы данных, и другие вещи. Вы также можете отобразить иерархии наследования объектов на несколько способов их представления в таблицах базы данных.

NHibernate может делать нечто подобное, определенно в области наследования (не уверен насчет отображения одного объекта .NET на несколько таблиц).

Почти все другие ORM - это просто более или менее прославленное отображение таблиц базы данных в формате 1: 1 на объекты .NET - без возможностей отображения и моделирования.

2 голосов
/ 08 апреля 2011

Это действительно маркетинг, но основанный на реальных усилиях. Entity Framework - это ORM, но в то же время это стратегическая платформа MS для доступа к данным. Entity Framework является базовым уровнем для многих других расширенных API, таких как WCF Data Services, WCF RIA Services, ASP.NET Dynamic Data и т. Д. Эти API работают также с другими источниками данных, но в основном они разработаны для EF и используются с EF. На это указывает MS.

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

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