Uo TransactionScope

venerdì 04 giugno 2010 - 12.01

cicemoi Profilo | Junior Member

Salve,
sto provando ad utilizzare la classe TransactionScope per mettere in transazione il metodo CreateUser di .Net con un altro metodo creato ad hoc da me per inserire tutte le altre informazioni dell'utente
sto procendo in questo modo:

using (TransactionScope txScope = new TransactionScope())

all'interno del quale richiamo il metodo "Membership.CreateUser " e il mio metodo oUtenti.Insert_utente() che usa a sua volta una sua connessione

volevo sapere
1. se in questo modo il suo uso è corretto
2. in caso di successo di entrambe le operazioni per fare il commit si usa il metodo "txScope.Complete()"
3. in caso di insuccesso delle operazioni come si fa il rollback? con il "txScope.Dispose()" ?

grazie mille

alx_81 Profilo | Guru

>Salve,
Ciao

>volevo sapere
>1. se in questo modo il suo uso è corretto
immagino che sotto alla definizione ed all'istanziazione del TransactionScope ci sia quella della connessione e poi del comando eventuale.. In tal caso, direi di sì, e lo vedi anche da questo link:
http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.complete.aspx

>2. in caso di successo di entrambe le operazioni per fare il commit si usa il metodo "txScope.Complete()"
>3. in caso di insuccesso delle operazioni come si fa il rollback? con il "txScope.Dispose()" ?
Il metodo complete, decide se fare commit o rollback:
"The Complete method commits the transaction. If an exception has been thrown, Complete is called and the transaction is rolled back."
Dipende dallo stato della transazione. il pattern è di solito:

try
using TransactionScope
fai operazioni
complete()
end using
end try
catch..

in poche parole se non fa la complete la transazione non è committata. E viene rollbackata..

>grazie mille
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5