NHibernate - это ORM или объектно-реляционный картограф. В той же строке, что и LINQ to SQL, Entity Framework, LLBLGen и другие, инструменты ORM избавляют от необходимости писать хранимые процедуры для обработки общего доступа к данным (CRUD) для ваших бизнес-объектов. Инструменты ORM требуют, чтобы вы создали (вручную или с помощью визуального дизайнера ... зависит от того, что вы выбрали) спецификацию отображения, которая отслеживает, какие свойства ваших объектов соответствуют каким столбцам ваших таблиц и / или представлений в вашей базе данных. Когда вам нужно получить объекты, инструмент ORM сгенерирует подходящий для вас SQL и отправит его в базу данных. Когда придет время обновлять ваши объекты, ORM не только создаст SQL для вставки, обновления и удаления для вас ... он также будет пакетировать эти команды так, чтобы одно соединение и пакет команд отправлялись в базу данных и выполняет все это в транзакции. Инструменты ORM также могут повысить эффективность ваших запросов, позволяя вам выбирать целые графы объектов за один раз, генерируя наиболее эффективный SQL для этой задачи.
С инструментами ORM вам все равно нужно выполнять запросы, однако вы либо используете базовые методы для объекта контекста или сеанса ORM, либо с помощью пользовательского языка запросов для этого ORM. В наши дни большинство ORM, в том числе NHibernate, также предоставляют поддержку LINQ, позволяя вам использовать стандартный синтаксис LINQ для запросов к вашей объектной модели, который, в свою очередь, транслируется для запросов SQL к вашей базе данных.
Преимущество OR mappers состоит в том, что вы централизуете почти ВСЕ свой код в свой домен, а не разделяете его между доменом и хранимыми процессами. Вы уменьшаете нагрузку на хранимые процедуры в своей базе данных, обеспечивая меньший барьер для рефакторинга вашей базы данных, если когда-либо возникает необходимость, обеспечивая большую гибкость бизнеса не только в вашем домене, но и с помощью схемы базы данных. Поскольку вам не нужно писать SQL, особенно если вы используете LINQ, вы часто можете создать более эффективное приложение с меньшими усилиями и более низкими затратами на техническое обслуживание.
Помимо неизбежной войны с вашими администраторами баз данных (если они у вас есть), операторы OR могут принести значительные преимущества в таблицу, которые могут сократить усилия по внедрению, улучшить обслуживание и обеспечить большую гибкость бизнеса.
Надеюсь, что ответит на вопрос. ;)