Как я могу реализовать класс, который знает TransactionScope? - PullRequest
4 голосов
/ 28 августа 2009

У меня есть служба WCF, которая выполняет некоторые обновления для нескольких баз данных и Active Directory. Поскольку Active Directory не может поддерживать транзакции, я хочу реализовать его в классе «DirectoryRepository», который будет выполнять компенсирующее действие при откате.

мой код использует TransactionScope ...

using(var scope = new TransactionScope())
{
       AssetRepository.Add(asset);

       DeploymentRepository.Add(deployment);

       DirectoryRepository.Add(directoryEntry);

       scope.Complete();
}

Как мой DirectoryRepository может быть в курсе любых текущих транзакций и получать уведомления о необходимости отката?

1 Ответ

4 голосов
/ 28 августа 2009

Я думаю, возможно, вы хотите это

http://msdn.microsoft.com/en-us/library/ms229975.aspx

, который показывает, как создать менеджера ресурсов, который может подключиться к транзакции и получить уведомления, например откаты и тому подобное. (Но я давно этого не делал, забыл.)

...