Nyelv

IsolationLevel Enumeráció

Definíció

A tranzakció elkülönítési szintjét adja meg.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
Öröklődés
IsolationLevel

Mezők

Név Érték Description
Serializable 0

A volatilis adatok olvashatók, de nem módosíthatók, és a tranzakció során nem lehet új adatokat hozzáadni.

RepeatableRead 1

A volatilis adatok olvashatók, de nem módosíthatók a tranzakció során. A tranzakció során új adatok is hozzáadhatók.

ReadCommitted 2

A volatilis adatok nem olvashatók a tranzakció során, de módosíthatók.

ReadUncommitted 3

A tranzakció során volatilis adatok olvashatók és módosíthatók.

Snapshot 4

Az illékony adatok olvashatók. Mielőtt egy tranzakció módosítja az adatokat, ellenőrzi, hogy egy másik tranzakció módosította-e az adatokat az első olvasás után. Ha az adatok frissültek, hibaüzenet jelenik meg. Ez lehetővé teszi, hogy a tranzakció az adatok korábban véglegesített értékéhez jusson.

Amikor egy elkülönítési szinttel Snapshot létrehozott tranzakciót próbál előléptetni, InvalidOperationException a rendszer a következő hibaüzenettel jelenik meg: "Az elkülönítési szint pillanatképével rendelkező tranzakciók nem előléptethetők".

Chaos 5

Az elkülönítettebb tranzakciók függőben lévő módosításai nem írhatók felül.

Unspecified 6

A megadotttól eltérő elkülönítési szint van használatban, de a szint nem határozható meg. Kivétel jelenik meg, ha ez az érték be van állítva.

Megjegyzések

A tranzakció által érintett adatokat illékonynak nevezzük. Tranzakció létrehozásakor megadhatja a tranzakcióra vonatkozó elkülönítési szintet. A tranzakciók elkülönítési szintje határozza meg, hogy a tranzakció befejeződése előtt milyen hozzáférési szinttel kell rendelkezniük a többi tranzakciónak.

A legalacsonyabb elkülönítési szint lehetővé teszi, ReadUncommittedhogy számos tranzakció egyszerre működjön egy adattárban, és nem nyújt védelmet az adatsérülésekkel szemben a megszakításos tranzakciók miatt. A legmagasabb elkülönítési szint Serializablemagas szintű védelmet biztosít a megszakításos tranzakciók ellen, de megköveteli, hogy az egyes tranzakciók befejeződjenek, mielőtt bármely más tranzakció működjön az adatokon.

A tranzakció elkülönítési szintje a tranzakció létrehozásakor lesz meghatározva. Alapértelmezés szerint az System.Transactions infrastruktúra tranzakciókat hoz létre Serializable . A meglévő tranzakciók Transaction.IsolationLevel elkülönítési szintjét egy tranzakció tulajdonságával határozhatja meg.

A következőre érvényes: