Salvare i dati usando una transazione nelle applicazioni .NET Framework

Nota

I set di dati e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le applicazioni vengono disconnesse dal database. Sono particolarmente utili per le applicazioni che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Anche se i set di dati hanno dimostrato di essere una tecnologia molto efficace, è consigliabile che le nuove applicazioni .NET usino Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e ha un'interfaccia di programmazione più semplice.

I dati vengono salvati in una transazione usando lo spazio dei System.Transactions nomi . Utilizzare l'oggetto TransactionScope per partecipare a una transazione gestita automaticamente.

I progetti non vengono creati con un riferimento all'assembly System.Transactions , quindi è necessario aggiungere manualmente un riferimento ai progetti che usano transazioni.

Il modo più semplice per implementare una transazione consiste nell'creare un'istanza di un TransactionScope oggetto in un'istruzione using . Per altre informazioni, vedere Istruzione Using e Istruzione Using. Il codice eseguito all'interno dell'istruzione using partecipa alla transazione.

Per eseguire il commit della transazione, chiamare il Complete metodo come ultima istruzione nel blocco using.

Per eseguire il rollback della transazione, generare un'eccezione prima di chiamare il Complete metodo .

Per aggiungere un riferimento a System.Transactions.dll

  1. Scegliere Aggiungi riferimento dal menu Progetto.

  2. Nella .NET scheda (scheda SQL Server per i progetti DI SQL Server ) selezionare System.Transactions e quindi selezionare OK.

    Al progetto viene aggiunto un riferimento a System.Transactions.dll .

Per salvare i dati in una transazione

  • Aggiungere il codice per salvare i dati all'interno dell'istruzione using che contiene la transazione. Il codice seguente illustra come creare e creare un'istanza di un TransactionScope oggetto in un'istruzione using:

    using (System.Transactions.TransactionScope updateTransaction = 
        new System.Transactions.TransactionScope())
    {
        // Add code to save your data here.
        // Throw an exception to roll back the transaction.
    
        // Call the Complete method to commit the transaction
        updateTransaction.Complete();
    }