Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 14748|Svar: 0

[Löst] Verifiering misslyckas för en eller flera enheter. För mer information, se egenskapen EntityValidationErrors.

[Kopiera länk]
Publicerad på 2015-10-08 20:47:51 | | |
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.





Föregående:Dianping och Meituan kommer att slå sig ihop för ömsesidig nytta och win-win-resultat.
Nästa:ASP.NET en samling metoder för att hämta rotkatalogen
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com