353 messaggi dal 13 febbraio 2004
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

cinzia cipriano
Ciao,

il dispose devi farlo comunque, visto che utilizzi il TransactionScope all'interno di un blocco using. Semplicemente, se vuoi fare il rollback non devi invocare il metodo Complete, cosa che avviene in maniera piuttosto naturale se hai un'eccezione, no?

using (var tx = new TransactionScope())
{
  myMethod();
  tx.Complete(); // se myMethod solleva eccezione, non arrivo mai qui 
}


m.
353 messaggi dal 13 febbraio 2004
try
{
..................
txScope.Complete();
}
catch (Exception ex)
{
lblNotificaErrore.Text = ex.Message.ToString();
}
finally
{
txScope.Dispose();
}


ok grazie mille ;)

cinzia cipriano

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.