Πεδίο συναλλαγής
Το TransactionScope είναι μια κλάση στο System.Transactions, η οποία είναι μια κλάση που συνοδεύει το πλαίσιο .NET. Εάν το TransactionScope αποδεσμευτεί χωρίς να καλέσει τη μέθοδο Complete (το TransactionScope υλοποιεί τη διεπαφή IDisposible, συνιστάται η χρήση μπλοκ), τότε θα θεωρήσει ότι η λειτουργία αποτυγχάνει και θα επαναφέρει την εκτέλεση. Το TransactionScope είναι ένα χρήσιμο API που διαχειρίζεται τις συναλλαγές ("γύρω" σημαίνει ότι οι βάσεις δεδομένων που υποστηρίζουν το TransactionScope μπορούν να διαχειρίζονται αυτόματα τις συναλλαγές) και οι περισσότερες κύριες βάσεις δεδομένων υποστηρίζουν αυτό το API, συμπεριλαμβανομένου του MSSQL της Microsoft, φυσικά. Εάν χρησιμοποιείτε μια βάση δεδομένων ή κάποιο σύστημα που σχετίζεται με συναλλαγές που δεν υποστηρίζει το TransactionScope, μπορείτε να χρησιμοποιήσετε τον αναχαιτιστή, αλλά θα πρέπει να τροποποιήσετε τον κώδικά σας για να χρησιμοποιήσετε ένα κατάλληλο API που υποστηρίζει συναλλαγές (π.χ. χρησιμοποιώντας το BeginTransaction API για να λάβετε την υλοποίηση του IDbTransactions από τον πάροχο της βάσης δεδομένων).
Το παραπάνω είναι μια προσαρμοσμένη εξαίρεση που έριξα επίτηδες για να δω αν μπορεί να επανέλθει κανονικά και η παρακάτω εικόνα είναι κανονική εκτέλεση, χωρίς εξαιρέσεις.
Η κλήση της μεθόδου Complete του TransactionScope υποδεικνύει ότι η συναλλαγή εκτελέστηκε με επιτυχία. Φυσικά, εάν η συναλλαγή εκτελείται πάντα, τότε η συναλλαγή δεν χρειάζεται. Ο λόγος για τον οποίο υπάρχουν συναλλαγές είναι για να λυθεί το πρόβλημα της αποτυχίας σε πολλαπλές λειτουργίες και εάν υπάρξει αποτυχία, θα επανέλθει. Επειδή το . TransactionScope του .NET, δεν υπάρχει ρητή κλήση επαναφοράς και το πλησιέστερο ισοδύναμο είναι να χρησιμοποιήσετε τη μέθοδο Dispose. Εάν το TransactionScope κυκλοφορήσει πριν από την κλήση της μεθόδου Complete, τότε το TransactionScope εκτελεί επαναφορά. Επομένως, πρέπει να προστεθεί μια κλήση απόρριψης στην όψη του συστήματος παρακολούθησης συναλλαγών για να πραγματοποιηθεί η επαναφορά.
Τέλος, επισυνάψτε τον κωδικό!
Επισυνάπτεται ο πηγαίος κώδικας:Τουρίστες, αν θέλετε να δείτε το κρυφό περιεχόμενο αυτής της ανάρτησης, παρακαλώ Απάντηση
|