Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í.