Partager via


Transactions (LINQ to SQL)

LINQ to SQL prend en charge trois modèles de transaction distincts. Ces modèles sont présentés ci-dessous dans l'ordre d'exécution des contrôles.

Transaction locale explicite

Lorsque vous appelez SubmitChanges, si la propriété Transaction a pour valeur une transaction (IDbTransaction), l'appel de SubmitChanges est effectué dans le contexte de la même transaction.

Il vous appartient de valider ou de restaurer la transaction une fois qu'elle s'est correctement exécutée. La connexion qui correspond à la transaction doit être identique à celle utilisée pour construire le DataContext. L'utilisation d'une autre connexion lève une exception.

Transaction distribuable explicite

Vous pouvez appeler des API LINQ to SQL (y compris, mais de manière non limitative, SubmitChanges) dans l'étendue d'un type Transaction actif. LINQ to SQL détecte que l'appel est dans l'étendue d'une transaction et ne crée pas de nouvelle transaction. LINQ to SQL évite également de fermer la connexion dans ce cas. Vous pouvez effectuer une requête et exécuter SubmitChanges dans le contexte de ce type de transaction.

Transaction implicite

Lorsque vous appelez SubmitChanges, LINQ to SQL vérifie si l'appel se trouve dans la portée d'une Transaction ou si la propriété Transaction (IDbTransaction) a pour valeur une transaction locale démarrée par l'utilisateur. S'il ne détecte aucune transaction, LINQ to SQL démarre une transaction locale (IDbTransaction) et l'utilise pour exécuter les commandes SQL générées. Lorsque toutes les commandes SQL ont été exécutées correctement, LINQ to SQL valide la transaction locale et les retours.

Voir aussi

Tâches

Procédure : mettre entre parenthèses des soumissions de données à l'aide de transactions (LINQ to SQL)

Autres ressources

Informations générales (LINQ to SQL)