Transakcijas tvērums
TransactionScope ir System.Transactions klase, kas ir klase, kas nāk kopā ar .NET ietvaru. Ja TransactionScope tiek izlaists, neizsaucot metodi Complete (TransactionScope ievieš IDisposible interfeisu, ieteicams izmantot bloku), tad tas uzskatīs, ka operācija neizdodas, un atgriezīs izpildi. TransactionScope ir noderīga API, kas pārvalda darījumus apkārt ("apkārt" nozīmē, ka datu bāzes, kas atbalsta TransactionScope, var automātiski pārvaldīt darījumus), un lielākā daļa galveno datu bāzu atbalsta šo API, tostarp, protams, Microsoft MSSQL. Ja izmantojat datu bāzi vai kādu ar darījumiem saistītu sistēmu, kas neatbalsta TransactionScope, jūs joprojām varat izmantot pārtvērēju, bet jums būs jāmodificē kods, lai izmantotu piemērotu API, kas atbalsta transakcijas (piemēram, izmantojot BeginTransaction API, lai iegūtu datu bāzes nodrošinātāja IDbTransactions ieviešanu).
Iepriekš minētais ir pielāgots izņēmums, kuru es apzināti izmetu, lai redzētu, vai to var normāli atgriezt, un zemāk redzamais attēls ir normāla izpilde bez izņēmumiem.
Izsaucot TransactionScope metodi Complete, tiek norādīts, ka darījums ir veiksmīgi izpildīts. Protams, ja darījums vienmēr tiek izpildīts, tad darījums nav nepieciešams. Darījumu iemesls ir atrisināt neveiksmes problēmu vairākās operācijās, un, ja rodas neveiksme, tā tiks atcelta. Jo . .NET TransactionScope, nav skaidra atcelšanas izsaukuma, un tuvākais ekvivalents ir izmantot Dispose metodi. Ja TransactionScope tiek izlaists pirms metodes Complete izsaukšanas, TransactionScope veic atcelšanu. Tāpēc, lai veiktu atcelšanu, transakcijas pārtvērēja sejai ir jāpievieno izsaukums Iznīcināt.
Visbeidzot, pievienojiet kodu!
Pievienots avota kods:Tūristi, ja vēlaties redzēt šīs ziņas slēpto saturu, lūdzu Atbildi
|