IsolationLevel Výčet

Definice

Určuje úroveň izolace transakce.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
Dědičnost
IsolationLevel

Pole

Chaos 5

Čekající změny z více izolovaných transakcí nelze přepsat.

ReadCommitted 2

Během transakce nelze číst nestálé data, ale je možné je upravit.

ReadUncommitted 3

Během transakce je možné číst a upravovat nestálé data.

RepeatableRead 1

Nestálé data je možné číst, ale během transakce je neměňovat. Během transakce je možné přidat nová data.

Serializable 0

Nestálé data je možné číst, ale ne upravovat a během transakce nelze přidat žádná nová data.

Snapshot 4

Nestálé data je možné číst. Než transakce upraví data, ověří, jestli jiná transakce změnila data po počátečním čtení. Pokud se data aktualizovala, vyvolá se chyba. Díky tomu se transakce dostane k dříve potvrzené hodnotě dat.

Při pokusu o zvýšení úrovně izolace transakce, která byla vytvořena s Snapshot úrovní izolace, InvalidOperationException je vyvolán chybovou zprávou "Transakce s IsolationLevel Snapshot nelze zvýšit".

Unspecified 6

Používá se jiná úroveň izolace než zadaná, ale úroveň nelze určit. Pokud je tato hodnota nastavená, vyvolá se výjimka.

Poznámky

Data ovlivněná transakcí se nazývají nestálé. Při vytváření transakcí, můžete určit úroveň izolace, která se použije pro transakce. Úroveň izolace transakce určuje, jakou úroveň přístupu mají ostatní transakce nestálá data před dokončením transakce.

Nejnižší úroveň izolace umožňuje ReadUncommittedmnoha transakcím pracovat na úložišti dat současně a neposkytuje žádnou ochranu proti poškození dat kvůli přerušení transakcí. Nejvyšší úroveň izolace poskytuje Serializablevysoký stupeň ochrany před přerušujícími transakcemi, ale vyžaduje, aby každá transakce byla dokončena před všemi jinými transakcemi, aby na datech fungovaly.

Úroveň izolace transakce je určena při vytvoření transakce. Ve výchozím nastavení System.Transactions infrastruktura vytváří Serializable transakce. Úroveň izolace existující transakce můžete určit pomocí Transaction.IsolationLevel vlastnosti transakce.

Platí pro