Sdílet prostřednictvím


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

Při SubmitChanges volání, pokud Transaction je vlastnost nastavena na (IDbTransaction) transakce, SubmitChanges volání se provede v kontextu stejné transakce.

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ě mimo jiné SubmitChanges) v oboru 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 provádění.

Implicitní transakce

Při volání SubmitChanges, LINQ to SQL zkontroluje, zda je volání v oboru nebo Transaction pokud Transaction je vlastnost (IDbTransaction) nastavena na uživatelem spuštěné místní transakce. 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é