venerdì 6 agosto 2021

C# The operation is not valid for the state of the transaction.

Durante lo sviluppo di accesso alla base dati, può capitare che utilizzando TransactionScope generi l'errore "The operation is not valid for the state of the transaction." dovuto ad operazioni su altri task.

Una possibile soluzione può essere quella di impostare nel costruttore della classe TransactionScope, il tipo di lettura e la durata di timeout e livello.

Qui di seguito un frammento di codice per evitare tale eccezione.


TransactionOptions options = new TransactionOptions();

options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;

options.Timeout = new TimeSpan(0, 15, 0);

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))

{

                            //Codice

                        }


Nessun commento: