Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 14748|Vastaus: 0

[Ratkaistu] Vahvistus epäonnistuu yhdelle tai useammalle taholle. Lisätietoja löytyy EntityValidationErrors -ominaisuudesta.

[Kopioi linkki]
Julkaistu 8.10.2015 20.47.51 | | |
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.





Edellinen:Dianping ja Meituan yhdistyvät molempien hyödyn ja win-win-tulosten vuoksi.
Seuraava:ASP.NET kokoelma metodeja juurihakemiston hakemiseen
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com