Koska kyseessä on artikkelin uudelleenjulkaisu, lähde on mainittu tässä, pyydän anteeksi, jos on olemassa artikkeleita, jotka on siirretty aiemmin ilman viittausta, koska osa niistä ei enää löydä lähdettä tai muista syistä.
Jos loukkaannut, ota minuun yhteyttä, poista se tai ilmoita lähde.
Koska ennen halusin vain kerätä hyviä artikkeleita, mutta joskus yhteys pettää, joten nyt menen suoraan itseeni, kun kohtaan hyvän artikkelin.
Alkuperäinen lähde http://blog.csdn.net/snowinfish/article/details/11567301
Kun tietoja kirjoitetaan ADO.NET-entiteettimalliin VS2012:ssa, se sanoo jatkuvasti "DbEntityValidationException ei käsitelty" ja "Yhden tai useamman entiteettien validointi epäonnistui. Lisätietoja löytyy kohdasta EntityValidationErrors -ominaisuudet.
Testasin seuraavat kaksi entiteettiä itse, pääasiassa virheen, jonka aiheutti "operate911".
Tarkistin tiedot netistä ja viittasin seuraavaan artikkeliin.
Kiertotie EntityValidationErrors-tietojen tarkasteluun
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Kuitenkin poikkeusta kirjoittaessa järjestelmällä ei ole "DbEntityValidationException"-merkintää, jonka arvellaan olevan nimiavaruusviittauksen puute.
Lisätty:
[csharp] katso selvä kopio käyttäen System.Data.Validationia;
Vastaavaa menettelyä muutetaan seuraavasti: [csharp] katso selvä kopio yritä { entiteettejä. Operate911.Add(operate911); Entiteettejä. SaveChanges(); } catch (DbEntityValidationException dbEx) {
} Start, ei poikkeuskehote, "operate911" ei kirjoita dataa tietokantatauluun. Tarkistuksen syynä on se, että lisäohjelmaa kirjoitettaessa ei täytetä dataa sarakkeelle, joka ei saa olla tyhjä, ja muokkauksen jälkeen ohjelma käynnistetään ja testi onnistuu.
Jos et kuitenkaan kirjoita poikkeusta, jatka ylävirheen esittämistä.
Lisäksi parametri "dbEx" lauseen "catch (DbEntityValidationException dbEx)" jälkeen voidaan kirjoittaa ilman kirjoittamista.
Jatkaa tuntemattomana...
09.12 Lisäys:
Yllä oleva yritys ja kiinniotto on kirjoitettu väärin, eikä poikkeusta heitetä, vaan muutetaan muotoon:
[csharp] katso selvä kopio yritä { var operateSpt = uusi OperateSpt (ymd, timeNow, Operte); Entiteettejä. OperateSpts.Add(operateSpt); Entiteettejä. SaveChanges(); }
catch (esim. DbEntityValidationException) { MessageBox.Show(ex. Viesti); }
Tulokset on esitetty alla olevassa kuvassa.
Jatkaa tuntemattomana...
Lisäaine: Ongelmanratkaisu.
Syy: Kirjoitettu data on ristiriidassa taulukon asetusten kanssa.
Syynä on se, että tietyssä vaiheessa kirjoitettu data on tyhjä, mutta alkuperäinen taulukko on asetettu "ei sallittu olla tyhjä", joten tässä vaiheessa tulee poikkeus.
Olin liian huolimaton enkä koskaan ajatellut tätä ongelmaa, kun näin muita operaatioita kirjoitettuna dataan katsellessani.
|