transacciones - transactionscope c# oracle
¿Cómo usar TransactionScope correctamente? (1)
Siempre quiero tratar de usar TransactionScope
pero no puedo entender qué es lo que la gente ve al respecto. Así que tomemos un ejemplo:
using(TransactionScope tran = new TransactionScope()) {
CallAMethodThatDoesSomeWork1();
CallAMethodThatDoesSomeWork2();
tran.Complete();
}
Entonces, la pregunta más básica: ¿cómo escribo " CallAMethodThatDoesSomeWork1()
" para que sepa cómo CallAMethodThatDoesSomeWork2()
sus acciones si digamos " CallAMethodThatDoesSomeWork2()
" arroja una excepción?
El código dentro de los métodos que llama debe ser consciente de la transacción y alistarse en la transacción activa. Esto significa crear o usar clases que son administradores de recursos (vea Implementar su propio Administrador de recursos) .
Para ello, implemente IEnlistmentNotification y IEnlistmentNotification en la transacción. Cuando se completa la transacción, el administrador de transacciones llamará a los métodos definidos en esa interfaz para que su código pueda hacer / deshacer el trabajo.