Я пришел к выводу, что нет причин использовать UnitOfWork поверх сеанса NHibernate, и спрашивал в этот вопрос о том, как лучше всего не создавать транзакцию явно для каждого действия сохранения базы данных.
Только для того, чтобы вернуться к идее единицы работы. Что ж, дальнейшее расследование привело меня к тому, что я изначально не собирался реализовывать отдельный шаблон Unit of Work поверх NHibernate (один пример и другие).
Моя проблема в том, как вы не используете единицу работы и не управляете транзакциями в репозитории на микроуровне и не храните их отдельно?