Эту статью я хотел бы посвятить работе с 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 паттерна.