Sdílet prostřednictvím


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

Name Hodnota Description
Serializable 0

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

RepeatableRead 1

Nestálá data lze číst, ale během transakce je nelze upravovat. Během transakce lze přidat nová data.

ReadCommitted 2

Nestálá data nelze číst během transakce, ale lze je upravit.

ReadUncommitted 3

Nestálá data lze číst a upravovat během transakce.

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 přečtení. Pokud byla data aktualizována, vyvolá se chyba. To umožňuje transakci získat k dříve potvrzené hodnotě dat.

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

Chaos 5

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

Unspecified 6

Používá se jiná úroveň izolace než zadaná úroveň, 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í transakce můžete zadat úroveň izolace, která se vztahuje na transakci. Úroveň izolace transakce určuje, jakou úroveň přístupu jiné transakce musí nestálé data před dokončením transakce.

Nejnižší úroveň izolace umožňuje ReadUncommittedmnoha transakcím pracovat s úložištěm dat současně a neposkytuje žádnou ochranu proti poškození dat kvůli přerušení transakcí. Nejvyšší úroveň izolace , Serializableposkytuje vysoký stupeň ochrany proti přerušení transakcí, ale vyžaduje, aby každá transakce byla dokončena před všemi ostatními transakcemi pracovat s daty.

Ú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