Partager via


IsolationLevel Énumération

Définition

Spécifie le niveau d'isolement d'une transaction.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
Héritage
IsolationLevel

Champs

Chaos 5

Les modifications en attente, provenant des transactions les plus isolées, ne peuvent pas être remplacées.

ReadCommitted 2

Les données volatiles ne peuvent pas être lues pendant la transaction, mais peuvent être modifiées.

ReadUncommitted 3

Les données volatiles peuvent être lues et modifiées pendant la transaction.

RepeatableRead 1

Les données volatiles peuvent être lues mais pas modifiées pendant la transaction. De nouvelles données peuvent être ajoutées pendant la transaction.

Serializable 0

Les données volatiles peuvent être lues mais pas modifiées et aucune nouvelle donnée ne peut être ajoutée pendant la transaction.

Snapshot 4

Les données volatiles peuvent être lues. Avant qu'une transaction ne modifie des données, elle vérifie si une autre transaction a modifié les données après la lecture initiale. Si les données ont été mises à jour, une erreur est déclenchée. Une transaction peut ainsi obtenir la valeur précédemment validée des données.

Lorsque vous essayez de promouvoir une transaction qui a été créée avec le niveau d’isolement Snapshot, une InvalidOperationException est levée avec le message d’erreur « Impossible de promouvoir les transactions comportant la capture instantanée IsolationLevel ».

Unspecified 6

Un niveau d'isolement différent de celui spécifié est utilisé actuellement, mais il est impossible de le déterminer. Une exception est levée si cette valeur est définie.

Remarques

Les données affectées par une transaction sont appelées volatiles. Lorsque vous créez une transaction, vous pouvez spécifier le niveau d'isolation qui s'y applique. Le niveau d’isolation d’une transaction détermine le niveau d’accès à d’autres transactions à des données volatiles avant la fin d’une transaction.

Le niveau d’isolation le plus bas, ReadUncommittedpermet à de nombreuses transactions d’opérer simultanément sur un magasin de données et ne fournit aucune protection contre la corruption des données en raison de transactions interruptions. Le niveau d’isolation le plus élevé, Serializablefournit un degré élevé de protection contre les transactions d’interruption, mais nécessite que chaque transaction soit terminée avant que d’autres transactions ne soient autorisées à fonctionner sur les données.

Le niveau d’isolation d’une transaction est déterminé lorsque la transaction est créée. Par défaut, l’infrastructure System.Transactions crée des Serializable transactions. Vous pouvez déterminer le niveau d’isolation d’une transaction existante à l’aide de la Transaction.IsolationLevel propriété d’une transaction.

S’applique à