Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 14748|Răspunde: 0

[Rezolvat] Verificarea eșuează pentru una sau mai multe entități. Pentru mai multe informații, consultați proprietatea EntityValidationErrors.

[Copiază linkul]
Postat pe 08.10.2015 20:47:51 | | |
Deoarece este o reeditare a articolului Sursa este indicată aici, vă rog să mă iertați dacă există articole care au fost transferate înainte fără indicație, deoarece unele nu mai pot găsi sursa sau din alte motive.

Dacă te simți ofensat, te rog să mă contactezi, să ștergi sau să indici sursa.

Pentru că înainte voiam doar să colecționez articole bune, dar uneori conexiunea eșuează, așa că acum merg direct la mine când dau peste unul bun.

Sursa originală http://blog.csdn.net/snowinfish/article/details/11567301



Când scrii date în modelul entității ADO.NET în VS2012, tot apare mesajul "DbEntityValidationException not handled" și "Validarea uneia sau mai multor entități a eșuat. Pentru mai multe informații, vezi Proprietățile EntityValidationErrors.



Am testat eu următoarele două entități, în principal eroarea cauzată de "operate911".

Am verificat informațiile online și am consultat următorul articol.

Soluție alternativă pentru cum să vizualizezi detaliile despre EntityValidationErrors

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

Totuși, la scrierea excepției, sistemul nu are "DbEntityValidationException", care se presupune că este o lipsă de referință la spațiul de nume.

Așa am adăugat:

[csharp] vizualizare simplă
folosind System.Data.Validation;  

Procedura corespunzătoare este modificată pentru:
[csharp] vizualizare simplă
încearcă  
{ entități. Operate911.Add(operate911);  
    entități. SaveChanges();  
}  
prinde (DbEntityValidationException dbEx)   
{  

}  
Pornire, fără excepție, "operate911" nu scrie date în tabelul bazei de date.
Motivul verificării este că, atunci când scrii un program suplimentar, nu există umplerea datelor pentru o coloană care nu este permisă să fie goală, iar după modificare, programul este pornit și testul are succes.



Totuși, dacă nu scrii o excepție, continuă să afișezi eroarea de sus.

Mai mult, parametrul "dbEx" după propoziția "catch (DbEntityValidationException dbEx)" poate fi scris fără a fi scris.

Să rămână necunoscut...



09.12 Addendum:

Încercarea și prinderea de mai sus sunt scrise greșit, iar excepția nu este aruncată, ci schimbată la:


[csharp] vizualizare simplă
încearcă  
{ var operateSpt = new OperateSpt(ymd, timeNow, Operate);  
        entități. OperateSpts.Add(operateSpt);  
        entități. SaveChanges();  
}  

catch (DbEntityValidationException ex)  
{  
    MessageBox.Show(ex. Mesaj);  
}  

Rezultatele sunt prezentate în figura de mai jos.


Să rămână necunoscut...



Supliment: Rezolvarea problemelor.

Motiv: Datele scrise sunt inconsistente cu setările tabelului.

Motivul meu este că, la un anumit pas, datele scrise sunt goale, dar tabelul original este setat pe "nu este permis să fie gol", deci va exista o excepție când se efectuează acest pas.

Am fost prea neglijent și nu m-am gândit niciodată la această problemă când am văzut alte operații scrise pe date în timp ce mă uitam la ele.





Precedent:Dianping și Meituan vor fuziona pentru beneficiu reciproc și rezultate câștig-câștig.
Următor:ASP.NET o colecție de metode pentru a obține directorul rădăcină
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com