Fordi det er en genoptryk af artiklen. Kilden er angivet her, undskyld hvis der er artikler, der tidligere er blevet overført uden angivelse, fordi nogle af dem ikke længere kan finde kilden, eller af andre grunde.
Hvis du føler dig fornærmet, så kontakt mig venligst, slet det, eller angiv kilden.
For jeg plejede bare at ville samle gode artikler, men nogle gange fejler forbindelsen, så nu går jeg direkte til mig selv, når jeg støder på en god.
Original kilde http://blog.csdn.net/snowinfish/article/details/11567301
Når man skriver data til den ADO.NET entitetsmodel i VS2012, bliver den ved med at sige "DbEntityValidationException not handled" og "Validation of one eller flere entities failed failed. For mere information, se EntityValidationErrors Egenskaber.
Testede selv de næste to enheder, hovedsageligt fejlen forårsaget af "operate911".
Jeg tjekkede informationen online og henviste til følgende artikel.
Workaround for, hvordan man ser EntityValidationErrors-detaljer
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Men når undtagelsen skrives, har systemet ikke "DbEntityValidationException", hvilket formodes at skyldes mangel på navnerumsreference.
Så tilføjet:
[Csharp] Se PlainCopy brug af System.Data.Validation;
Den tilsvarende procedure ændres til: [Csharp] Se PlainCopy Prøv { entiteter. Operate911.Add (operate911); væsener. SaveChanges(); } catch (DbEntityValidationException dbEx) {
} Start, ingen undtagelsesprompt, "operate911" skriver ikke data til databasetabellen. Grunden til kontrollen er, at når man skriver et supplerende program, er der ingen dataudfyldning for en kolonne, der ikke må være tom, og efter modifikation startes programmet, og testen er succesfuld.
Men hvis du ikke skriver en undtagelse, så fortsæt med at give den øverste fejl.
Desuden kan parameteren "dbEx" efter sætningen "catch (DbEntityValidationException dbEx)" skrives uden at skrive.
Fortsat være ukendt...
09.12 Tillæg:
Ovenstående try og catch er skrevet forkert, og undtagelsen er ikke kastet, men ændret til:
[Csharp] Se PlainCopy Prøv { var operateSpt = new OperateSpt(ymd, timeNow, Operate); væsener. OperateSpts.Add (operateSpt); væsener. SaveChanges(); }
catch (DbEntityValidationException f.eks.) { MessageBox.Show(f.eks. Besked); }
Resultaterne vises i figuren nedenfor.
Fortsat være ukendt...
Supplement: Problemløsning.
Årsag: De skrevne data er inkonsistente med tabelindstillingerne.
Min grund er, at på et bestemt trin er de skrevne data tomme, men den oprindelige tabel er sat til "må ikke være tom", så der vil være en undtagelse, når dette trin udføres.
Jeg var for uforsigtig og tænkte aldrig over dette problem, da jeg så andre operationer skrevet til dataene, mens jeg kiggede på dataene.
|