Вероятно, правильный выбор - NHibernate.Библиотека очень зрелая (в настоящее время v3), основана на Java Hibernate, который существует еще дольше.
Это зависит.NHibernate разработан для сценариев OLTP.Это означает, что вы загружаете небольшой фрагмент данных, обрабатываете его и сохраняете обратно.Критическая часть: «маленький кусок».Если вы оказались в каком-либо OLAP-подобном scneario, где вы должны выполнить пакетную обработку больших кусков, NH не является хорошим выбором.В такой ситуации вы, скорее всего, вообще не хотите использовать ORM.Как всегда: правильный инструмент для правильной работы.
Если ваше приложение типично для предприятия, вы будете довольны NH.Библиотека очень гибкая со многими вариантами тонкой настройки.Также помните, что вы все еще можете использовать старый добрый ADO.NET в частях OLAP своего приложения, если они есть.
Если у вас возникнут какие-либо проблемы, сообщество NH * очень поддержит, плюс естькомпании и частные лица, предлагающие консультационную и платную поддержку (если этого требует политика вашей компании).
Я пользуюсь NH в течение 3 лет и могу рекомендовать его - инструмент выполняет свою работу.