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

Άποψη: 49435|Απάντηση: 1

[Πηγή] Οι οντότητες EF τύπου προσάρτησης "XXXX" αποτυγχάνουν επειδή άλλες...

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 12/5/2021 9:43:53 π.μ. | | |
Το EF προσαρτά μια οντότητα τύπου "XXXX" που αποτυγχάνει επειδή μια άλλη οντότητα του ίδιου τύπου έχει ήδη την ίδια τιμή πρωτεύοντος κλειδιού. Όταν χρησιμοποιείτε τη μέθοδο "Επισύναψη" ή ορίζετε την κατάσταση της οντότητας σε "Αμετάβλητη" ή "Τροποποιήθηκε"

Επειδή άλλες οντότητες του ίδιου τύπου έχουν ήδη την ίδια τιμή πρωτεύοντος κλειδιού. Αυτή η συμπεριφορά μπορεί να προκύψει όταν χρησιμοποιείτε τη μέθοδο "Επισύναψη" ή όταν ορίζετε την κατάσταση μιας οντότητας σε "Αμετάβλητη" ή "Τροποποιήθηκε", εάν οποιαδήποτε οντότητα στο σχέδιο έχει μια τιμή κλειδιού σε διένεξη
Αυτό μπορεί να οφείλεται στο γεγονός ότι ορισμένες οντότητες είναι νέες και δεν έχουν λάβει ακόμη ένα κλειδί-τιμή που δημιουργείται από τη βάση δεδομένων (νέα οντότητα), οπότε το γράφημα παρακολουθείται χρησιμοποιώντας τη μέθοδο "Προσθήκη" ή την κατάσταση οντότητας "Προστέθηκε" και, στη συνέχεια, η κατάσταση της μη νέας οντότητας ορίζεται σε "Αμετάβλητη" ή "Τροποποιήθηκε" ανάλογα.
Στην πραγματικότητα, αυτό το σφάλμα είναι ότι όταν το EF ανοίγει μια συναλλαγή, υπάρχουν ήδη δεδομένα με το ίδιο πρωτεύον κλειδί στο πλαίσιο του EF και προσωπικά αντιμετωπίζω αυτό το πρόβλημα σε διάφορες καταστάσεις:

Κατάσταση 1:

Τροποποιώντας, επαναλαμβάνοντας τα ίδια δεδομένα σε έναν πίνακα (π.χ. επανάληψη της ποσότητας αποθέματος του ίδιου είδους), αυτή η περίπτωση θα πρέπει να είναι η πρώτη φορά που δεν διαγράφεται η κρυφή μνήμη περιβάλλοντος

Ο κωδικός έχει ως εξής:


Ο βρόχος εδώ δεν αναφέρει σφάλμα την πρώτη φορά και τη δεύτερη φορά θα είναι λάθος

Λύση:


Κατάσταση 2:

Η λειτουργία βρόχου προσθέτει πρώτα ένα τμήμα δεδομένων και, στη συνέχεια, τροποποιεί τα δεδομένα

Ο κωδικός έχει ως εξής:


Εδώ αναφέρονται επίσης σφάλματα, ιδίως για νέα EF ή νέες οντότητες

Λύση:








Προηγούμενος:Δοκιμή απόδοσης Redis Benchmark
Επόμενος:ASP.NET Λεπτομερής επεξήγηση του ενδιάμεσου λογισμικού Middleware του Core (9).
Δημοσιεύτηκε στις 22/9/2021 8:55:57 μ.μ. |
Μάθε να μαθαίνεις...
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com