ADO.NET Entity Framework против NHibernate

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

Наконец, что вы думаете об использовании NHibernate, который существует уже давно и может быть более зрелым, чем ADO.NET Entity Framework.

20.08.2008 14:48:00
7 ОТВЕТОВ

Microsoft почти признала, что ADO.Net Entity Framework не является ORM (в настоящее время я не могу найти ссылку). Так что если вы думаете о Entity Framework как о механизме запросов, то, очевидно, он действительно хорош в том, что делает. Однако для полного решения ORM вы можете посмотреть в другом месте.

Следующее сообщение в блоге, кажется, подтверждает эту разницу:

http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspx

4
20.08.2008 15:04:33

NHibernate может быть более зрелым. Это не обязательно означает, что это «лучшее» решение. Пользуясь им на работе какое-то время, я лично предпочел бы использовать почти все, чем NHibernate (даже прямой SQL, если бы миграция была возможна удаленно). Количество сообщений об ошибках, выдаваемых NHibernate, которые ничего не значат (или означают что-то, но никогда не должны возникать), абсолютно ошеломляет, как и некоторые из его поведений по умолчанию (например, сброс сеанса один раз для каждого объекта, возвращаемого в Find ).

Лично, когда у меня есть выбор, я использую LINQ to SQL для всей работы с базой данных.

13
20.08.2008 15:11:36
заставляет ли вас сомневаться в этом решение субсидирующая поддержка, недавно распространенная в сфере? Я чувствую, как будто я должен был отказаться от этого из страха, что будущие потребности в поддержке будут игнорироваться мс. мысли?
brady gaster 10.12.2008 03:12:49
Я не очень обеспокоен. Если он полностью заброшен (маловероятно), для третьей стороны всегда возможно создать слой LINQ to SQL поверх простого LINQ (который никуда не денется), аналогично группам, которые делали LINQ to AD или LINQ to NHibernate. Кто-то почти наверняка сделает это.
TheSmurf 10.12.2008 18:48:20
Мой любимый «ожидаемое число строк: 1, фактическое число строк: 0», без объяснения или даже имени таблицы. Их намного больше, но это довольно показательно.
TheSmurf 4.02.2009 19:41:14
@Brady Gaster LINQ и EF никуда не денутся. MS активно продвигает EF и действительно прислушивается к сообществу. Я согласен с тем, что им еще многое нужно улучшить, но я не сомневаюсь, что у них это получится.
Chev 7.11.2010 07:56:30

У меня проблема с SubSonic. SubSonic задохнулся на столах с тем же именем, но с другой схемой. Я не хочу обсуждать лучшие практики построения базы данных, потому что я не позвонил, чтобы сделать это. (Когда дело доходит до повышения голоса, сделайте точку и продолжите работу, я бы предпочел сохранить свою работу.: ))

0
30.04.2009 22:35:39
Это хорошее понимание - где я работаю, кто-то проектировал базу данных таким же образом с дублированными именами в нескольких схемах.
t3rse 4.05.2009 22:27:37

Я использовал SubSonic, LinqToSql, LinqToEntities. Теперь я пытаюсь NHibernate. На данный момент - мне нравится NHibernate (вероятно, потому что я не встретил достаточно проблем). Худший из них - LinqToEntities (это только мое мнение, конечно).

3
12.05.2009 08:54:42

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

0
24.06.2009 14:45:13

Если нулевое конфигурирование является основным преимуществом SubSonic, вы можете взглянуть на Fluent nHibernate или Entity Framework Code-First.

ОБНОВЛЕНИЕ от Răzvan Panda: Свободное владение NHibernate в основном устарело благодаря включению в сам NHibernate отображения с помощью кода, см .: notherdev.blogspot.ie/2012/02/

12
14.04.2016 09:35:36
Entity Framework Code First - это также нулевая конфигурация, так что на самом деле вам даже не нужна строка подключения для ее запуска.
Daniel Little 9.08.2011 23:17:11
@Lavinski Да, теперь есть. Но в 19.08.2009, когда я оставил этот комментарий, не было.
Regfor 9.02.2012 10:19:15
Все больше причин, чтобы держать его в курсе.
Daniel Little 9.02.2012 10:38:06
Свободное владение NHibernate в основном устарело благодаря включению в сам NHibernate отображения с помощью кода, см. Notherdev.blogspot.ie/2012/02/…
Răzvan Flavius Panda 14.04.2016 08:45:09

Прошло 2 года с момента публикации. Насколько я понимаю, ADO.NET Entity Framework переросла в .net 4. У кого-нибудь есть какие-либо новые отзывы по этой теме?

Вот ссылка на улучшения, добавленные в EF с момента первого выпуска в 2008 г. http://blogs.msdn.com/b/adonet/archive/2009/05/11/update-on-the-entity-framework-in-net- 4-и-зрительно-студия-2010.aspx

Обновление: я нашел эту тему о переполнении стека, которая хорошо обсуждает обновленный EF:

Entity Framework 4 против NHibernate

6
23.05.2017 11:45:22