Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 14748|Válasz: 0

[Megoldva] Az ellenőrzés egy vagy több entitás esetében megbukik. További információért lásd az EntityValidationErrors tulajdonságot.

[Linket másol]
Közzétéve 2015. 10. 08. 20:47:51 | | |
Mivel ez a cikk újranyomása, a forrás itt szerepel, kérem, bocsásson meg, ha olyan cikkeket már áthelyeztek előzetes jelzés nélkül, mert néhányan már nem találják meg a forrást, vagy más okokból.

Ha megsértődsz, kérlek, vedd fel velem a kapcsolatot, töröld vagy jelezd a forrást.

Mert régen csak jó cikkeket akartam gyűjteni, de néha a kapcsolat meghibásodott, így most közvetlenül magamhoz fordulok, amikor találok egy jót.

Eredeti forrás http://blog.csdn.net/snowinfish/article/details/11567301



Amikor adatokat írunk a ADO.NET entitás modelljébe a VS2012-ben, folyamatosan azt mondja: "DbEntityValidationException nem kezelve" és "Egy vagy több entitás validálása sikertelenül. További információért lásd: EntityValidationErrors Properties.



A következő két entitást magam teszteltem, főleg az "operate911" hibáját.

Átnéztem az információkat az interneten, és hivatkoztam a következő cikkre.

Megoldás az EntityValidationErrors részleteinek megtekintésére

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

Azonban a kivétel írásakor a rendszerben nincs "DbEntityValidationException", ami névtér hivatkozás hiányát feltételezik.

Így hozzáadták:

[csharp] Nézd meg a tiszta másolatot
System.Data.Validation használatával;  

A megfelelő eljárás a következőképpen változik:
[csharp] Nézd meg a tiszta másolatot
próbáld ki  
{ entitások. Operate911.Add(operate911);  
    entitások. SaveChanges();  
}  
catch (DbEntityValidationException dbEx)   
{  

}  
Start, nincs kivétel prompt, az "operate911" nem ír adatokat az adatbázis táblájára.
Az ellenőrzés oka az, hogy kiegészítő program írásakor nem töltenek ki adatokat egy olyan oszlopban, amely nem szabad üres lenni, és módosítás után a program elindul, és a teszt sikeres.



Ha azonban nem írsz kivételt, folytasd a top hibát.

Továbbá, a "catch (DbEntityValidationException dbEx)" mondat után a "dbEx" paraméter írás nélkül is írható.

Továbbra is ismeretlen...



09.12 Kiegészítés:

A fenti próba és elkapás helytelenül van leírva, és a kivételt nem dobják el, hanem megváltoztatják:


[csharp] Nézd meg a tiszta másolatot
próbáld ki  
{ var operateSpt = új OperateSpt(ymd, timeNow, Operate);  
        entitások. OperateSpts.Add(operationSpt);  
        entitások. SaveChanges();  
}  

catch (DbEntityValidationException ex)  
{  
    MessageBox.Show (pl. Üzenet);  
}  

Az eredményeket az alábbi ábrán mutatják be.


Továbbra is ismeretlen...



Kiegészítés: Problémamegoldás.

Ok: Az írott adatok nem egyeznek a táblázat beállításaival.

Az indok, hogy egy adott lépésnél az írott adatok üresek, de az eredeti tábla "nem szabad üres lenni" módjára van beállítva, így kivétel lesz a lépés végrehajtásakor.

Túl figyelmetlen voltam, és soha nem gondoltam erre a problémára, amikor láttam, hogy más műveletek írtak az adatokra, miközben az adatokat néztem.





Előző:Dianping és Meituan egyesülnek a kölcsönös előnyök és a nyerő eredmények miatt.
Következő:ASP.NET egy metódusgyűjtemény a gyökérkönyvtár megszerzéséhez
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com