Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A LINQ–SQL három különböző tranzakciómodellt támogat. Az alábbi lista ezeket a modelleket az elvégzett ellenőrzések sorrendjében sorolja fel.
Explicit helyi tranzakció
Amikor SubmitChanges a rendszer meghívja, ha a Transaction tulajdonság (IDbTransaction) tranzakcióra van állítva, a SubmitChanges hívás ugyanazon tranzakció kontextusában lesz végrehajtva.
A tranzakció sikeres végrehajtása után az Ön felelőssége, hogy véglegesítse vagy visszaállítsa a tranzakciót. A tranzakciónak megfelelő kapcsolatnak meg kell egyeznie azzal a kapcsolattal, amelyet a DataContext összekapcsolásához használtak. A rendszer kivételt jelez, ha másik kapcsolatot használ.
Direkt megosztható tranzakció
LINQ to SQL API-kat meghívhat (beleértve, de nem kizárólag SubmitChanges) az aktív Transaction hatókörében. A LINQ to SQL észleli, hogy a hívás egy tranzakció hatókörébe tartozik, és nem hoz létre új tranzakciót. A LINQ és az SQL közötti kapcsolat ebben az esetben is elkerüli a kapcsolat bezárását. Egy ilyen tranzakció kontextusában lekérdezéseket és SubmitChanges végrehajtásokat hajthat végre.
Implicit tranzakció
Hívásakor SubmitChanges a LINQ to SQL ellenőrzi, hogy a hívás a Transaction hatókörébe tartozik-e, vagy a Transaction tulajdonság (IDbTransaction) felhasználó által indított helyi tranzakcióra van-e beállítva. Ha egyik tranzakciót sem találja, a LINQ–SQL elindít egy helyi tranzakciót (IDbTransaction), és a generált SQL-parancsok végrehajtására használja. Ha az összes SQL-parancs sikeresen befejeződött, a LINQ az SQL-nek véglegesíti a helyi tranzakciót, és visszaadja.