Подтвердить что ты не робот

ADO.NET Entity Framework vs NHibernate

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Если нулевая конфигурация является основным преимуществом SubSonic, вы можете посмотреть Свободный nHibernate или Entity Framework Code-First

UPDATE из Răzvan Panda: Fluent NHibernate в большинстве случаев устарел, включив в NHibernate сам отображение по коду, см. notherdev.blogspot.ie/2012/02/

Ответ 3

Прошло уже 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-and-visual-studio-2010.aspx

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

Entity Framework 4 vs NHibernate

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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