Я использовал оба. Сначала я был продан на nHibernate и отказался попробовать что-либо еще, хотя я знал о других вариантах.
С LLBLGen Pro я был настроен скептически, но вскоре увидел и преимущества. Я не полностью отказался от Hibernate. Я буду продолжать хранить int в моем «ящике с инструментами». Я нашел LLBLGen полезным в некоторых случаях, особенно при взаимодействии с базой данных, которая уже существует, и у вас нет выбора для ее перепроектирования. Для генерации моих объектов сущности LLBLGen из базы данных требуется менее часа (в зависимости от размера базы данных), в отличие от необходимости кодировать все это вручную с помощью nHibernate и выполнять сопоставления. В nHibernate отсутствует красивый графический интерфейс для создания отображений. Этот факт становится еще более важным, когда база данных огромна с тысячами таблиц, к которым вам потенциально необходим доступ в вашем приложении.
Хотя LLBLGen является скорее генератором уровня доступа к данным (и я обычно не фанат генераторов DAL), он обладает множеством функций, которыми обладает инструмент «истинного ORM». На мой взгляд, это лучшее из обоих миров. Как только вы начинаете работать с ним, вы начинаете понимать, что он очень гибкий и расширяемый. Одна часть, которая мне очень нравится, - это то, что я могу создать частичные классы для сгенерированных объектов-сущностей, где я могу кодировать в своей бизнес-логике и проверять правильность.
Генерация кода основана на шаблонах, поэтому вы можете полностью контролировать код, который он генерирует. С nHibernate я снова и снова пишу один и тот же код. С LLBLGen я могу сгенерировать его и быстрее сосредоточиться на бизнес-логике и проблемах.
Для тех, кто только начинает использовать инструменты типа ORM, я действительно рекомендую начинать с LLBLGen, потому что nHibernate может быть подавляющим. И в итоге вы добьетесь того же результата (более или менее).
Редактирование # 1: LLBLGen теперь также имеет 100% поддержку LINQ. (Поэтому, если вам нравится LINQ to SQL по этой причине), далее LLBLGen может поддерживать множество баз данных, где LINQ to SQL предназначен только для базы данных Microsoft SQL.
Правка № 2:
Согласно Graviton вы можете использовать CodeSmith, чтобы сделать часть кода, генерируемого для вас для nHibernate. Это действительно круто, но для новичка в ORM я все равно рекомендую LLBLGen. Для меня это добавляет больше зависимостей, где LLBLGen имеет все это в одном пакете. Также, как я уже говорил, кривая обучения намного менее крута, и вы получите те же преимущества, которые также помогут вам легко перейти на nHibernate, если вы когда-нибудь решите туда пойти.