Freigeben über


Transaktionen (LINQ to SQL)

Aktualisiert: November 2007

LINQ to SQL unterstützt drei unterschiedliche Transaktionsmodelle. Nachfolgend werden diese Modelle in der Reihenfolge der durchgeführten Prüfungen aufgelistet.

Explizite lokale Transaktion

Wird SubmitChanges aufgerufen und ist die Transaction-Eigenschaft auf eine (IDbTransaction-) Transaktion festgelegt, erfolgt der SubmitChanges-Aufruf im Kontext der gleichen Transaktion.

Es ist Ihre Aufgabe, für die Transaktion nach erfolgreicher Ausführung ein Commit oder ein Rollback auszuführen. Die Verbindung, die der Transaktion entspricht, muss zur Verbindung passen, die zum Erstellen des DataContext verwendet wurde. Eine Ausnahme wird ausgelöst, wenn eine andere Verbindung verwendet wird.

Explizit verteilbare Transaktion

Sie können LINQ to SQL-APIs (einschließlich, jedoch nicht begrenzt auf SubmitChanges) im Rahmen einer aktiven Transaction aufrufen. LINQ to SQL stellt fest, dass der Aufruf im Gültigkeitsbereich einer Transaktion liegt und erstellt keine neue Transaktion. LINQ to SQL verhindert in diesem Fall auch das Schließen der Verbindung. Sie können Abfragen und SubmitChanges im Kontext einer solchen Transaktion ausführen.

Implizite Transaktion

Wenn Sie SubmitChanges aufrufen, prüft LINQ to SQL, ob der Aufruf im Rahmen einer Transaction erfolgt oder ob die Transaction-Eigenschaft (IDbTransaction) auf eine vom Benutzer gestartete lokale Transaktion festgelegt ist. Wird keine Transaktion gefunden, startet LINQ to SQL eine lokale Transaktion (IDbTransaction) und verwendet diese zur Ausführung der erzeugten SQL-Befehle. Wurden alle SQL-Befehle erfolgreich abgeschlossen, bestätigt LINQ to SQL die lokale Transaktion und kehrt zurück.

Siehe auch

Aufgaben

Gewusst wie: Einklammern von Datenübergaben durch das Verwenden von Transaktionen (LINQ to SQL)

Weitere Ressourcen

Hintergrundinformationen (LINQ to SQL)