Podpora transakcí

LINQ to SQL podporuje tři různé transakční modely. Následující modely jsou uvedeny v pořadí provedených kontrol.

Explicitní místní transakce

Pokud je vlastnost SubmitChanges nastavena na transakci Transaction, dojde k volání IDbTransaction v kontextu stejné transakce při volání SubmitChanges.

Je vaší zodpovědností potvrdit nebo vrátit transakci po úspěšném provedení transakce. Připojení odpovídající transakci se musí shodovat s připojením použitým k vytvoření DataContext. Pokud se použije jiné připojení, vyvolá se výjimka.

Explicitní distribuovatelná transakce

LINQ to SQL API můžete volat (včetně, ale bez omezení na SubmitChanges) v rámci aktivní Transaction. LINQ to SQL zjistí, že volání je v oboru transakce a nevytvoří novou transakci. LINQ to SQL také zabraňuje zavření připojení v tomto případě. V kontextu takové transakce můžete provádět dotazy a SubmitChanges operace.

Implicitní transakce

Při volání SubmitChanges LINQ to SQL zkontroluje, zda je volání v rámci Transaction nebo zda je vlastnost Transaction (IDbTransaction) nastavena na uživatelem spuštěnou místní transakci. Pokud nenajde žádnou transakci, LINQ to SQL spustí místní transakci (IDbTransaction) a použije ji ke spuštění vygenerovaných příkazů SQL. Jakmile jsou všechny příkazy SQL úspěšně dokončeny, LINQ to SQL potvrdí místní transakci a vrátí.

Viz také