Keďže ide o prepis článku. Zdroj je tu uvedený, prosím, ospravedlňte ma, ak boli články už predtým presunuté bez uvedenia, pretože niektoré z nich už zdroj nenájdu, alebo z iných dôvodov.
Ak ste urazení, kontaktujte ma, vymažte to alebo uveďte zdroj.
Pretože kedysi som chcel len zbierať dobré články, ale niekedy spojenie zlyhá, takže teraz idem priamo k sebe, keď narazím na dobrý článok.
Pôvodný zdroj http://blog.csdn.net/snowinfish/article/details/11567301
Pri zápise dát do ADO.NET entity modelu vo VS2012 stále hovorí "DbEntityValidationException not handled" a "Validácia jednej alebo viacerých entít zlyhala. Pre viac informácií pozri vlastnosti EntityValidationErrors.
Testoval som ďalšie dve entity sám, hlavne chybu spôsobenú "operate911".
Skontroloval som informácie online a odkázal som na nasledujúci článok.
Obchádzka, ako zobraziť detaily EntityValidationErrors
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Avšak pri zápise výnimky systém nemá "DbEntityValidationException", čo sa predpokladá ako nedostatok referencie v mennom priestore.
Tak som pridal:
[csharp] zobraziť plaincopy pomocou System.Data.Validation;
Príslušný postup je upravený na: [csharp] zobraziť plaincopy Skús { entity. Operate911.Add(operate911); entít. SaveChanges(); } catch (DbEntityValidationException dbEx) {
} Štart, bez výnimky, "operate911" nezapisuje dáta do databázovej tabuľky. Dôvodom kontroly je, že pri písaní doplnkového programu nie je potrebné vyplniť dáta pre stĺpec, ktorý nesmie byť prázdny, a po úprave sa program spustí a test je úspešný.
Ak však nenapíšete výnimku, pokračujte v zobrazovaní najvyššej chyby.
Navyše, parameter "dbEx" za vetou "catch (DbEntityValidationException dbEx)" môže byť zapísaný bez zápisu.
Zostáva neznámy...
09.12 Dodatok:
Vyššie uvedené pokusy a chytenie sú napísané nesprávne a výnimka sa nehodí, ale zmení sa na:
[csharp] zobraziť plaincopy Skús { var operateSpt = nový OperateSpt(ymd, timeNow, Operate); entít. OperateSpts.Add(operateSpt); entít. SaveChanges(); }
catch (DbEntityValidationException ex) { MessageBox.Show(napr. Message); }
Výsledky sú zobrazené na obrázku nižšie.
Zostáva neznámy...
Doplnok: Riešenie problémov.
Dôvod: Písomné údaje nie sú v súlade s nastaveniami tabuliek.
Môj dôvod je, že v určitom kroku sú zapísané dáta prázdne, ale pôvodná tabuľka je nastavená na "nie je povolené byť prázdne", takže pri vykonaní tohto kroku nastane výnimka.
Bol som príliš neopatrný a nikdy som na tento problém nemyslel, keď som videl iné operácie zapísané do dát pri ich prezeraní.
|