С точки зрения производительности, только очень плохо созданный ORM будет вашим узким местом. База данных или сетевой трафик к базе данных и из нее с гораздо большей вероятностью будут являться узким местом производительности. Нет необходимости взвешивать производительность при выборе ORM. Хотя создать упрощенные сравнения производительности ORM довольно просто, гораздо сложнее создать реальные сравнения производительности ORM, но вы можете попробовать.
ORM также не созданы для «простоты использования». Они созданы, чтобы скрыть несоответствие объектов / отношений. Все основные ORM выполняют адекватную работу по сокрытию несоответствия объектов / отношений. Простота использования является довольно стандартной для всех сторон, за исключением случаев, когда наборы функций различаются.
Самая большая разница между основными ORM заключается в наборе функций. Некоторые из них имеют очень мало функций, в то время как другие имеют много функций. Стоимость также может быть отличительной чертой, хотя существует множество «бесплатных» альтернатив, которые являются приличными.
Для .NET 3.5, NHibernate, безусловно, является лучшим вариантом в подавляющем большинстве сценариев. LinqToSql имеет плохую функциональность, а Entity Framework 1.0 / 3.5 был широко панорамирован за некоторые очень плохие компромиссы в дизайне при выходе продукта на рынок Существуют и другие адекватные .NET ORM, но, опять же, в большинстве сценариев они не могут эффективно конкурировать с NHibernate.
Гораздо больше мнений о .NET ORM можно найти по этому вопросу:
NHibernate, Entity Framework, активные записи или linq2sql