Эту статью я хотел бы посвятить работе с NHibernate. Зачастую при обсуждении тех или иных реализаций object-relational mapper'ов много внимания уделяется статическим аспектам их работы, в основном возможностям и реализации O/R mapping'а. Однако, рано или поздно, mapping написан, и нужно перейти к решению поведенческих вопросов, в частности, осуществлению базовых CRUD операций.
В рамках двух статей планирую осветить такие вопросы.
- Понятие session и transaction scope.
 - Подходы к выбору гранулярности session/transaction и их совместное использование.
 - 
Дизайн и реализация helper class'ов для облегчения задач управления сессией. Понятие 
unit of work, применение такой featureNHibernate'а как"contextual session". - 
Реализация паттерна 
Repositoryв контексте использованияNHibernate. - 
Возможности формирования запросов в 
NHibernate, и адаптация этих возможностей в реализации Repository паттерна.