Используя EF 4.1 и Castle ActiveRecord (основанный на NHibernate), я оценил бы их следующим образом:
Скорость доступа к БД - NHibernate для всего, что сложно удаленно, в остальном примерно одинаково.Проблема с EF заключается в том, что он создает такой сложный SQL, что трудно понять, как его оптимизировать или даже можно ли это сделать.
Кривая обучения - лично я нашел, что EF легче начать, но другиеможет чувствовать себя по-разному, и оба, безусловно, имеют кривую обучения.
Поддержка сообщества - Зависит от того, что вы подразумеваете под «поддержкой».Вы найдете много информации в Интернете (и на этом сайте) для обоих.NHibernate является открытым исходным кодом, в то время как EF контролируется MS.
Учебники / книги - я считаю, что в настоящее время для EF доступно больше «официальных» ресурсов, но поиск по форумам, вероятно, даст вам то, что вы можете »найти в книгах.
Anthing else - Поймите, что целью ORM является упрощение уровня доступа к данным для разработчика.Тем не менее, оба этих ORM (и почти любой другой тяжеловесный ORM) ожидают, что вы будете использовать определенные шаблоны кодирования для реализации этого упрощения.Хотя применение шаблонов кодирования не является плохой вещью (некоторые утверждают, что это необходимо), к этому, безусловно, нужно подготовиться, прежде чем выбрать один.