Максим Кузнецов: спасибо за ответ. TransactionScope смотрел, но решил проблему несколько иначе:
UI вызывает CommandInvoker, который содержит все шлюзы к таблицам + обертку над драйвером firebird. Транзакция стартует внутри метода инвокера на уровне драйвера, и все необходимые методы шлюзов таблиц работают в рамках этой транзакции.
Пример и правда слегка учебный - накрутил слоев, чтобы получше разобраться в PoEAA.
Еще видится вариант скрыть транзакцию БД IDbTranscation за своей ITransaction. Только тогда вопрос - как красиво в конкретном шлюзе вытащить из нее транзакцию БД?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.