Ну, замок ActiveRecord зависит от NHibernate. Правда, класс транзакции Castle ActiveRecord отличается от класса, найденного в NHibernate; но вы должны думать об ActiveRecord как обёртке по сравнению с NHibernate.
Так что нет необходимости "играть вместе". Потому что в глубине души они одинаковы.
Другая важная концепция - это «Сессия». «Сессия» - это единица работы, «окно», которое вы используете, чтобы сообщить NHibernate, что вы хотите делать: запросы, обновления, вставки и т. Д. Опять же, есть сессия NHibernate и сессия Castle ActiveRecord. Опять же, последний является оберткой над первым.
Это важно, потому что когда вы используете сеанс в ActiveRecord (а на самом деле вы всегда это делаете, даже если неявно), вы можете получить доступ к «скрытому» сеансу NHibernate внутри него; обычно с использованием делегата, переданного методу Execute. И именно так вы можете использовать оба стиля кода внутри своего приложения (см. Пример Execute Callback здесь ).
Чтобы лучше понять значение сеанса, см. Здесь .
Наконец, я предлагаю всегда использовать стиль ActiveRecord для объявления сессий и транзакций, даже при смешивании обоих стилей кодирования. Так как они представляют также сеансы и транзакции NHibernate, вы в безопасности. Чтобы лучше понять это, пожалуйста прочитайте здесь .
PS: Да, я не писал пример, который вы просили (слишком ленив для этого), но я считаю, что будет лучше для вашего учебного процесса, если вы напишите его. Поверьте мне, это проще, чем вы думаете.