Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 3308|Απάντηση: 0

[Πηγή] Εξαίρεση ταυτόχρονης εκτέλεσης EF DbUpdateConcurrencyException υποβάλλει εκ νέου ερώτημα στην προσωρινά αποθηκευμένη τιμή

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 1/11/2023 8:30:43 μ.μ. | | | |
Απαιτήσεις: Χρησιμοποιήστε αισιόδοξα κλειδώματα EF για να ελέγξετε την ταυτόχρονη λειτουργία, εάν αντιμετωπίζετε ταυτόχρονη λειτουργία, προσθέστε έναν μηχανισμό επανάληψης, βρείτε ότι τα δεδομένα που ζητήθηκαν ξανά μετά την επανάληψη είναι δεδομένα προσωρινής αποθήκευσης EF, με αποτέλεσμα να αποθηκεύονται πάντα εξαιρέσεις.

Η λειτουργία της βάσης δεδομένων αναμενόταν να επηρεάσει 1 γραμμή, αλλά στην πραγματικότητα επηρέασε 0 σειρά. Τα δεδομένα ενδέχεται να έχουν τροποποιηθεί ή διαγραφεί από τη στιγμή που φορτώθηκαν οι οντότητες. ΒλέπωΗ σύνδεση με υπερσύνδεσμο είναι ορατή.για πληροφορίες σχετικά με την κατανόηση και τον χειρισμό των αισιόδοξων εξαιρέσεων ταυτοχρονισμού.

Αυτή η συζήτηση οδήγησε σε σκέψεις σχετικά με την προσωρινή αποθήκευση ερωτημάτων EF 6.x και EF Core:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Χειρισμός ταυτόχρονης διάκρισης Timestamp και ConcurrencyCheck
https://www.itsvse.com/thread-3616-1-1.html

Οπως φαίνεται παρακάτω:



Σενάριο SQL:

ASP.NET Κώδικας υποστήριξης Core 6:

Κωδικός Ελεγκτή:



Επιλογή 1 (συνιστάται)

χρήσηΟντότηταΚατάσταση.DetachedΕπισημαίνοντας την κατάσταση της οντότητας ως μη παρακολουθούμενη από το περιβάλλον, τροποποιήστε την ως εξής:

Οπως φαίνεται παρακάτω:



Επιλογή 2

Καλέστε τη μέθοδο Reload() για να ανανεώσετε το αντικείμενο οντότητας, ο κώδικας έχει ως εξής:

Αν και η επαναφόρτωση μπορεί επίσης να ανανεώσει τις τιμές cache EF,Αυτό έχει ως αποτέλεσμα την εκτέλεση ερωτημάτων SQL περισσότερες από μία φορέςΕπομένως, δεν συνιστάται.

Οι άλλες δύο μέθοδοι, το AsNoTracking δεν είναι κατάλληλο και η άλλη δεν έχει δοκιμαστεί.

(Τέλος)




Προηγούμενος:Το .NET μετατρέπει τη συμβολοσειρά varbinary της βάσης δεδομένων σε πίνακα byte[]
Επόμενος:Ρυθμίσεις OpenWRT για εκκίνηση της εντολής εκτέλεσης
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com