Eftersom det är en återutgivning av artikeln Källan anges här, förlåt mig om det finns artiklar som tidigare har överförts utan indikation, eftersom vissa av dem inte längre kan hitta källan, eller av andra skäl.
Om du känner dig kränkt, vänligen kontakta mig, eller radera det, eller ange källan.
För jag brukade bara vilja samla bra artiklar, men ibland misslyckas kontakten, så nu går jag direkt till mig själv när jag stöter på en bra.
Originalkälla http://blog.csdn.net/snowinfish/article/details/11567301
När man skriver data till den ADO.NET entitetsmodellen i VS2012 står det hela tiden "DbEntityValidationException not handled" och "Validation of one eller more entities failed. För mer information, se EntityValidationErrors Properties.
Testade de två följande enheterna själv, främst felet orsakat av "operate911".
Jag kollade informationen online och hänvisade till följande artikel.
Tillfällig lösning för hur man ser detaljer om EntityValidationErrors
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Men när undantaget skrivs har systemet inte "DbEntityValidationException", vilket antas bero på brist på namnrymdsreferens.
Så lade det till:
[Csharp] Visa klartext använda System.Data.Validation;
Den motsvarande proceduren modifieras till: [Csharp] Visa klartext Försök { entiteter. Operate911.Add (operate911); entiteter. SaveChanges(); } catch (DbEntityValidationException dbEx) {
} Start, ingen undantagsprompt, "operate911" skriver inte data till databastabellen. Anledningen till kontrollen är att när man skriver ett kompletterande program finns det ingen datafyllning för en kolumn som inte får vara tom, och efter modifiering startas programmet och testet lyckas.
Men om du inte skriver ett undantag, fortsätt att ge det högsta felet.
Dessutom kan parametern "dbEx" efter meningen "catch (DbEntityValidationException dbEx)" skrivas utan att skriva.
Fortsätt vara okänd...
09.12 Tillägg:
Ovanstående try och catch är felaktigt skrivna, och undantaget kastas inte, utan ändras till:
[Csharp] Visa klartext Försök { var operateSpt = new OperateSpt(ymd, timeNow, Operate); entiteter. OperateSpts.Add(operateSpt); entiteter. SaveChanges(); }
catch (DbEntityValidationException ex) { MessageBox.Show(t.ex. Meddelande); }
Resultaten visas i figuren nedan.
Fortsätt vara okänd...
Tillägg: Problemlösning.
Anledning: Den skrivna datan är inkonsekvent med tabellinställningarna.
Min anledning är att vid ett visst steg är den skrivna datan tom, men den ursprungliga tabellen är inställd på "inte tillåten att vara tom", så det kommer att finnas ett undantag när detta steg utförs.
Jag var för slarvig och tänkte aldrig på detta problem när jag såg andra operationer skrivna till datan när jag tittade på datan.
|