Da es sich um einen Nachdruck des Artikels handelt. Die Quelle ist hier angegeben, bitte verzeihen Sie mir, falls es Artikel gibt, die zuvor ohne Hinweis übertragen wurden, da einige die Quelle nicht mehr finden können oder aus anderen Gründen.
Wenn du beleidigt bist, kontaktiere mich bitte, lösche es oder gib die Quelle an.
Früher wollte ich einfach nur gute Artikel sammeln, aber manchmal scheitert die Verbindung, also gehe ich jetzt direkt zu mir selbst, wenn ich auf einen guten stoße.
Ursprüngliche Quelle http://blog.csdn.net/snowinfish/article/details/11567301
Beim Schreiben von Daten in das ADO.NET Entitätsmodell in VS2012 sagt es immer wieder: "DbEntityValidationException not handled" und "Validierung einer oder mehrerer Entitäten fehlgeschlagen. Weitere Informationen finden Sie unter EntityValidationErrors Properties.
Ich habe die nächsten beiden Entitäten selbst getestet, hauptsächlich den Fehler, der durch "operate911" verursacht wurde.
Ich habe die Informationen online überprüft und auf den folgenden Artikel verwiesen.
Workaround, wie man die Details von EntityValidationErrors anzeigen kann
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Beim Schreiben der Ausnahme hat das System jedoch keine "DbEntityValidationException", was auf einen Mangel an Namespace-Referenz zurückgeführt wird.
Also hinzugefügt:
[Csharp] Klartext ansehen unter Verwendung von System.Data.Validation;
Das entsprechende Verfahren wird geändert zu: [Csharp] Klartext ansehen Versuch es { Entitäten. Operate911.Add(operate911); Entitäten. SaveChanges(); } catch (DbEntityValidationException dbEx) {
} Start, keine Ausnahme, "operate911" schreibt keine Daten in die Datenbanktabelle. Der Grund für die Überprüfung ist, dass beim Schreiben eines ergänzenden Programms keine Datenfüllung für eine Spalte vorliegt, die nicht leer sein darf, und nach der Änderung wird das Programm gestartet und der Test ist erfolgreich.
Wenn du jedoch keine Ausnahme schreibst, verfolge weiterhin den obersten Fehler.
Außerdem kann der Parameter "dbEx" nach dem Satz "catch (DbEntityValidationException dbEx)" geschrieben werden, ohne zu schreiben.
Weiterhin unbekannt bleiben...
09.12 Nachtrag:
Die oben genannten Versuche und Fangen sind falsch geschrieben, und die Ausnahme wird nicht geworfen, sondern geändert zu:
[Csharp] Klartext ansehen Versuch es { var operateSpt = new OperateSpt(ymd, timeNow, Operate); Entitäten. OperateSpts.Add (operateSpt); Entitäten. SaveChanges(); }
catch (DbEntityValidationException z.B.) { MessageBox.Show(z. B. Botschaft); }
Die Ergebnisse sind in der untenstehenden Abbildung dargestellt.
Weiterhin unbekannt bleiben...
Ergänzung: Problemlösung.
Begründung: Die schriftlichen Daten stimmen nicht mit den Tabelleneinstellungen überein.
Mein Grund ist, dass bei einem bestimmten Schritt die geschriebenen Daten leer sind, die ursprüngliche Tabelle aber auf "nicht frei sein dürfen" gesetzt ist, sodass es eine Ausnahme gibt, wenn dieser Schritt ausgeführt wird.
Ich war zu nachlässig und habe nie an dieses Problem gedacht, als ich andere Operationen sah, die in die Daten geschrieben wurden, während ich die Daten betrachtete.
|