NHibernate vs Entity Framework с бэкэнд Oracle

Теперь, когда Oracle официально поддерживает EF (по крайней мере, в бета-версии), EF выглядит разумным выбором для работы с базой данных Oracle. С другой стороны, NHibernate кажется очень подходящим для одной и той же работы.

У кого-нибудь есть опыт работы с обоими? Любые рекомендации для тех, кто хочет начать работу? Какой из них, кажется, имеет наибольший смысл в долгосрочной перспективе?

Ответ 1

EF по-прежнему является новорожденным в отношении сопротивления объекта. Он использует наследование базового объекта, которое иногда может заставить вас потерять возможность наследования при проектировании. Это может быть исправлено с новой версией EF, и тем не менее ей не хватает гибкости NHibernate.

NHibernate - это порт для .NET Hibernate в JAVA. Скорее всего, сейчас будет такая же зрелость, если я правильно помню из версии 3.0 NHibernate. Он использует либо сопоставление атрибутов, либо XML-сопоставление, либо вы можете использовать Fluent NHibernate или ConfORM, которые позволяют вам сопоставлять объекты в объектно-ориентированном и, необязательно, на основе соглашений.

Несмотря на то, что EF4, по-видимому, обеспечивает большую производительность в некотором роде, мое предпочтение по-прежнему связано с использованием NHibernate, так как оно оказалось более гибким с другими двигателями базы данных, отличными от SQL Server, IMHO.

Пожалуйста, убедитесь сами: