Ker gre za ponis članka. Vir je tukaj naveden, prosim oprostite, če so bili članki že prej preneseni brez navedbe, ker nekateri ne morejo več najti vira ali iz drugih razlogov.
Če ste užaljeni, me prosim kontaktirajte, izbrišite ali navedite vir.
Ker sem prej želel le zbirati dobre članke, a včasih povezava odpove, zato zdaj grem neposredno k sebi, ko naletim na dobrega.
Izvirni vir http://blog.csdn.net/snowinfish/article/details/11567301
Pri zapisovanju podatkov v ADO.NET model entitete v VS2012 ves čas piše "DbEntityValidationException ni obdelano" in "Validacija ene ali več entitet ni uspela. Za več informacij glejte lastnosti EntityValidationErrors.
Sam sem preizkusil naslednji dve entiteti, predvsem napako, ki jo je povzročil "operate911".
Preveril sem informacije na spletu in se skliceval na naslednji članek.
Rešitev za ogled podrobnosti EntityValidationErrors
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Vendar pa pri pisanju izjeme sistem nima "DbEntityValidationException", kar naj bi pomenilo pomanjkanje reference v imenskem prostoru.
Torej dodano:
[csharp] prikaži plaincopy uporaba System.Data.Validation;
Ustrezni postopek je spremenjen v: [csharp] prikaži plaincopy poskusi { entitete. Operate911.Add(operate911); entitete. SaveChanges(); } catch (DbEntityValidationException dbEx) {
} Začni, brez izjeme, "operate911" ne zapisuje podatkov v tabelo baze podatkov. Razlog za preverjanje je, da pri pisanju dopolnilnega programa ni izpolnjevanja podatkov za stolpec, ki ne sme biti prazen, in po spremembi se program zažene in test je uspešen.
Če pa ne napišete izjeme, še naprej izkazujte zgornjo napako.
Poleg tega je parameter "dbEx" po stavku "catch (DbEntityValidationException dbEx)" mogoče zapisati brez pisanja.
Ostaja neznano...
09.12 Dodatek:
Zgornji poskusi in ujeti sta napačno zapisani, izjema pa ni vržena, ampak spremenjena v:
[csharp] prikaži plaincopy poskusi { var operateSpt = novi OperateSpt(ymd, timeNow, Operate); entitete. OperateSpts.Add(operateSpt); entitete. SaveChanges(); }
catch (DbEntityValidationException ex) { MessageBox.Show(npr. Sporočilo); }
Rezultati so prikazani na spodnji sliki.
Ostaja neznano...
Dodatek: Reševanje problemov.
Razlog: Pisni podatki niso skladni z nastavitvami tabel.
Moj razlog je, da so pri določenem koraku zapisani podatki prazni, vendar je izvirna tabela nastavljena na "ni dovoljeno biti prazno", zato bo ob tem koraku izjema.
Bil sem preveč malomaren in o tem problemu sploh nisem razmišljal, ko sem videl druge operacije, zapisane v podatke, ko sem jih pregledoval.
|