Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 25346|Atbildi: 2

[Avots] TransactionScope izmantošana C#

[Kopēt saiti]
Publicēts 10.04.2017 10:16:25 | | | |
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ūdzuAtbildi






Iepriekšējo:Priekšraksts CREATE DATABASE nav atļauts vairāku pārskatu transakcijā
Nākamo:Linq OrderBy atbalsta dinamiskos laukus
 Saimnieks| Publicēts 10.04.2017 10:20:30 |
Klasi TransactionScope var izmantot ligzdotu, un, ja vēlaties to izmantot ligzdotu, ligzdotajā transakciju blokā jānorāda parametrs TransactionScopeOption. Noklusējuma parametrs ir Obligāts.

Ja ligzdotās klases TransactionScope Option TransactionScopeOption ir Obligāts, varat redzēt šādu rezultātu, to transakcijām ir tāds pats ID. Turklāt tas ir patiess panākums tikai tad, kad abi TransactionScopes ir pabeigti.

Ja iestatāt TransactionScopeOption uz RequiresNew, ligzdotie transakciju bloki un ārējie transakciju bloki ir neatkarīgi un neietekmē viens otru.

TransactionScopeOption ir iestatīts uz Nomākt, lai atceltu pašreizējā bloka transakciju, kas parasti tiek izmantota reti.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com