#entity-framework #orm
#entity-framework #orm
Вопрос:
Как следует из названия: почему люди, включая Microsoft, говорят, что ORM — это всего лишь функция Entity Framework? Чем он отличается от обычного ORM? Для меня EDM — это то же самое, что отображение XMl из NHibernate. Почему Microsoft утверждает, что это не одно и то же?
Комментарии:
1. @halfdan — Вы правы! Для меня это похоже на маркетинг, как в Apple, «отличный, сказочный» и т.д. 😉
Ответ №1:
Единственное, что отличает Entity Framework от большинства (если не всех) других ORM, — это тот факт, что он имеет три уровня: модель хранилища, которая является физической моделью базы данных (таблицы, представления и т.д.), концептуальную модель, которая представляет ваши объекты в вашем приложении, и слой сопоставления между этими двумя.
Вы можете выполнять сопоставления в EF, где один .СЕТЕВЫЕ сопоставления объектов с несколькими таблицами базы данных и другие вещи. Вы также можете сопоставить иерархии наследования объектов с несколькими способами представления иерархий в таблицах базы данных.
NHibernate может сделать нечто подобное, определенно в области наследования (не уверен насчет сопоставления .СЕТЕВОЙ объект для нескольких таблиц).
Почти все другие ORM — это просто более или менее прославленное отображение таблиц базы данных в 1: 1 .СЕТЕВЫЕ объекты — нет возможностей отображения и моделирования.
Ответ №2:
Это действительно маркетинг, но основанный на реальных усилиях. Entity framework — это ORM, но в то же время это стратегическая платформа MS для доступа к данным. Entity framework является базовым уровнем для многих других продвинутых API, таких как WCF Data Services, WCF RIA Services, ASP.NET Динамические данные и т.д. Эти API также работают с другими источниками данных, но в основном они разработаны для EF и используются с EF. На это и указывает MS.
На мой взгляд, приятно видеть, что у MS есть видение и стратегия, но в то же время я хотел бы видеть просто работающий и мощный ORM вместо маркетинговых заявлений, предлагающих мне функции, которые мне не нужны.
Комментарии:
1. Именно об этом я и думал. Это крупный маркетинг Microsoft. Но не могли бы вы подробнее рассказать об этом API «… в основном они разработаны для EF и используются с EF» Я не знал, что WCF «должен» использовать EF.