transacciones - Dapper & TransactionScope?
execute sp dapper (1)
Fue totalmente mi culpa y no comprendí completamente el workscope. Una conexión no se alista automáticamente en transactionscope a menos que abra la conexión dentro del scope de transacciones:
Alistamiento automático
using (var scope = new TransactionScope())
{
con.Open();
//update/delete/insert commands here
}
Alistamiento manual
con.Open();
using (var scope = new TransactionScope())
{
con.EnlistTransaction(Transaction.Current);
//update/delte/insert statements here
}
Los detalles se pueden encontrar aquí: Details
Empecé a jugar con Dapper. Hasta ahora lo amo. ¿Dapper no funciona con TransactionScope
? Observé que incluso si nunca llamo a TransactionScope.Complete
, mis cambios todavía están comprometidos con la base de datos. Si TransactionScope no es compatible ahora, ¿hay algún plan en el futuro para respaldarlo? Si no, entonces tiene que usar la administración de transacciones tradicional (System.Transactions.Transaction)?
Actualización: Acabo de hablar con Sam en Twitter. Deberia de funcionar. Lo actualizaré mañana por la mañana (en el trabajo) con los detalles para ver si alguien puede descubrir por qué mis cambios todavía se estaban comprometiendo con el DB incluso cuando nunca llamé por completo.