Dela via


Transaktionsstöd

LINQ till SQL har stöd för tre distinkta transaktionsmodeller. Följande visar dessa modeller i ordning efter utförda kontroller.

Explicit lokal transaktion

När SubmitChanges anropas körs anropet Transaction SubmitChanges i kontexten för samma transaktion om egenskapen är inställd på en (IDbTransaction) transaktion.

Det är ditt ansvar att checka in eller återställa transaktionen efter att transaktionen har utförts. Anslutningen som motsvarar transaktionen måste matcha anslutningen som används för att DataContextkonstruera . Ett undantag utlöses om en annan anslutning används.

Explicit distribuerbar transaktion

Du kan anropa LINQ till SQL-API:er (inklusive men inte begränsat till SubmitChanges) i omfånget för en aktiv Transaction. LINQ till SQL identifierar att anropet ligger i omfånget för en transaktion och inte skapar en ny transaktion. LINQ till SQL undviker också att stänga anslutningen i det här fallet. Du kan utföra frågor och SubmitChanges körningar i samband med en sådan transaktion.

Implicit transaktion

När du anropar SubmitChangeskontrollerar LINQ till SQL om anropet finns i omfånget för en Transaction eller om Transaction egenskapen (IDbTransaction) är inställd på en lokal transaktion som startats av användaren. Om den inte hittar någon transaktion startar LINQ till SQL en lokal transaktion (IDbTransaction) och använder den för att köra de genererade SQL-kommandona. När alla SQL-kommandon har slutförts genomför LINQ till SQL den lokala transaktionen och returnerar.

Se även