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

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

[Λύθηκε] Η επαλήθευση αποτυγχάνει για μία ή περισσότερες οντότητες. Για περισσότερες πληροφορίες, ανατρέξτε στην ιδιότητα EntityValidationErrors.

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 8/10/2015 8:47:51 μ.μ. | | |
Επειδή είναι ανατύπωση του άρθρου Η πηγή αναφέρεται εδώ, συγχωρέστε με αν υπάρχουν άρθρα που έχουν μεταφερθεί στο παρελθόν χωρίς ένδειξη, επειδή ορισμένα από αυτά δεν μπορούν πλέον να βρουν την πηγή ή για άλλους λόγους.

Εάν προσβάλλεστε, επικοινωνήστε μαζί μου ή διαγράψτε το ή αναφέρετε την πηγή.

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

Αρχική πηγή http://blog.csdn.net/snowinfish/article/details/11567301



Κατά την εγγραφή δεδομένων στο μοντέλο ADO.NET οντότητας στο VS2012, συνεχίζει να λέει "Δεν χειρίστηκε το DbEntityValidationException" και "Η επικύρωση μιας ή περισσότερων οντοτήτων απέτυχε. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ιδιότητες EntityValidationErrors.



Δοκίμασα μόνος μου τις επόμενες δύο οντότητες, κυρίως το σφάλμα που προκλήθηκε από το "operate911".

Έλεγξα τις πληροφορίες στο διαδίκτυο και αναφέρθηκα στο παρακάτω άρθρο.

Λύση για τον τρόπο προβολής λεπτομερειών EntityValidationErrors

http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html

Ωστόσο, κατά τη σύνταξη της εξαίρεσης, το σύστημα δεν έχει "DbEntityValidationException", το οποίο εικάζεται ότι είναι έλλειψη αναφοράς χώρου ονομάτων.

Έτσι προστέθηκε:

[csharp] προβολή απλού αντιγράφου
χρησιμοποιώντας το System.Data.Validation.  

Η αντίστοιχη διαδικασία τροποποιείται σε:
[csharp] προβολή απλού αντιγράφου
Δοκιμάστε  
{ οντότητες. Λειτουργία911.Προσθήκη(λειτουργία911);  
    οντότητες. ΑποθήκευσηΑλλαγών();  
}  
αλιευμάτων (DbEntityValidationException dbEx)   
{  

}  
Έναρξη, χωρίς προτροπή εξαίρεσης, το "operate911" δεν γράφει δεδομένα στον πίνακα της βάσης δεδομένων.
Ο λόγος για τον έλεγχο είναι ότι κατά τη σύνταξη ενός συμπληρωματικού προγράμματος, δεν υπάρχει συμπλήρωση δεδομένων για μια στήλη που δεν επιτρέπεται να είναι κενή και μετά την τροποποίηση, το πρόγραμμα ξεκινά και η δοκιμή είναι επιτυχής.



Ωστόσο, εάν δεν γράψετε μια εξαίρεση, συνεχίστε να ζητάτε το επάνω σφάλμα.

Επιπλέον, η παράμετρος "dbEx" μετά την πρόταση "catch (DbEntityValidationException dbEx)" μπορεί να γραφτεί χωρίς εγγραφή.

Συνεχίστε να είστε άγνωστοι...



09.12 Προσθήκη:

Τα παραπάνω try and catch είναι γραμμένα λανθασμένα και η εξαίρεση δεν ρίχνεται, αλλά αλλάζει σε:


[csharp] προβολή απλού αντιγράφου
Δοκιμάστε  
{ var operateSpt = νέο OperateSpt(ymd, timeNow, Operate);  
        οντότητες. OperateSpts.Add(operateSpt);  
        οντότητες. ΑποθήκευσηΑλλαγών();  
}  

αλιεύματα (DbEntityValidationException ex)  
{  
    MessageBox.Show(π.χ. Μήνυμα);  
}  

Τα αποτελέσματα φαίνονται στο παρακάτω σχήμα.


Συνεχίστε να είστε άγνωστοι...



Συμπλήρωμα: Επίλυση προβλημάτων.

Αιτία: Τα γραπτά δεδομένα δεν συνάδουν με τις ρυθμίσεις του πίνακα.

Ο λόγος μου είναι ότι σε ένα συγκεκριμένο βήμα, τα γραπτά δεδομένα είναι κενά, αλλά ο αρχικός πίνακας έχει οριστεί σε "δεν επιτρέπεται να είναι κενός", επομένως θα υπάρχει εξαίρεση όταν εκτελεστεί αυτό το βήμα.

Ήμουν πολύ απρόσεκτος και δεν σκέφτηκα ποτέ αυτό το πρόβλημα όταν είδα άλλες λειτουργίες γραμμένες στα δεδομένα όταν κοιτούσα τα δεδομένα.





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

Mail To:help@itsvse.com