Ho appena iniziato a giocare con Dapper. Finora mi piace. Dapper non funziona con TransactionScope
? Ho notato che anche se non avessi mai chiamato TransactionScope.Complete
mie modifiche sarebbero state ancora trasferite al database. Se TransactionScope non è supportato ora ci sono dei piani in futuro per supportarlo? In caso contrario, è necessario utilizzare la gestione tradizionale delle transazioni (System.Transactions.Transaction)?
Aggiornamento: ho appena parlato con Sam tramite Twitter. Dovrebbe funzionare. Lo aggiornerò domani mattina (al lavoro) con i dettagli per vedere se qualcuno è in grado di capire perché i miei cambiamenti sono stati ancora impegnati nel db anche quando non ho mai chiamato completo.
È stata totalmente colpa mia e non ho compreso appieno il transactioncope. Una connessione non viene automaticamente inserita in transactioncope a meno che non si apra la connessione all'interno del transactioncope:
Arruolamento automatico
using (var scope = new TransactionScope())
{
con.Open();
//update/delete/insert commands here
}
Arruolamento manuale
con.Open();
using (var scope = new TransactionScope())
{
con.EnlistTransaction(Transaction.Current);
//update/delte/insert statements here
}
I dettagli possono essere trovati qui: Dettagli