Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 14748|Yanıt: 0

[Çözüldü] Doğrulama bir veya daha fazla varlık için başarısız olur. Daha fazla bilgi için EntityValidationErrors özelliğine bakınız.

[Bağlantıyı kopyala]
Yayınlandı 8.10.2015 20:47:51 | | |
Çünkü bu makalenin yeniden basımı Kaynak burada belirtilmiş, eğer bazı makaleler artık kaynak bulamıyor veya başka nedenlerle daha önce aktarılmışsa lütfen affedin.

Alındıysanız, lütfen benimle iletişime geçin, silin ya da kaynağını belirtin.

Eskiden sadece iyi makaleler toplamak isterdim ama bazen bağlantı bozuluyor, şimdi iyi bir makaleyle karşılaştığımda doğrudan kendime yöneliyorum.

Orijinal kaynak http://blog.csdn.net/snowinfish/article/details/11567301



VS2012'de ADO.NET varlık modeline veri yazarken, sürekli "DbEntityValidationException işlenmedi" ve "Bir veya daha fazla varlığın doğrulaması başarısız oldu. Daha fazla bilgi için EntityValidationErrors Properties sayfasına bakınız.



Sonraki iki varlığı kendim test ettim, özellikle "operate911" kaynaklı hata.

Bilgileri çevrimiçi kontrol ettim ve aşağıdaki makaleye başvurdum.

EntityValidationErrors detaylarını görüntüleme için geçici çözümler

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

Ancak, istisna yazılırken, sistemde "DbEntityValidationException" belirtisi yoktur; bu da isim alanı referansının eksikliği olarak tahmin edilir.

Böylece eklenir:

[csharp] Plaincopy görüntü
System.Data.Validation kullanarak;  

İlgili prosedür şu şekilde değiştirilir:
[csharp] Plaincopy görüntü
Denemek  
{ varlıklar. Operate911.Add(operatione911);  
    varlıklar. SaveChanges();  
}  
catch (DbEntityValidationException dbEx)   
{  

}  
Başlat, istisna çağrısı yok, "operate911" veri veritabanı tablosuna yazmıyor.
Kontrol edilmenin nedeni, bir ek program yazarken boş kalmasına izin verilmeyen bir sütun için veri doldurulmaması ve modifikasyondan sonra programın başlatılması ve testin başarılı olmasıdır.



Ancak, istisna yazmazsanız, en üst hatayı sormaya devam edin.

Ayrıca, "catch (DbEntityValidationException dbEx)" cümlesinden sonra "dbEx" parametresi yazılmadan da yazılabilir.

Bilinmez olmaya devam ediyor...



09.12 Ek:

Yukarıdaki deneme ve yakalama hatalı yazılmıştır ve istisna atılmaz, ancak şu şekilde değiştirilmiştir:


[csharp] Plaincopy görüntü
Denemek  
{ var operateSpt = yeni OperateSpt(ymd, timeNow, Operate);  
        varlıklar. Operasyon Spres.Add(Operasyon Çalışması);  
        varlıklar. SaveChanges();  
}  

catch (DbEntityValidationException örneğin)  
{  
    MessageBox.Show(örneğin. Mesaj);  
}  

Sonuçlar aşağıdaki şekilde gösterilmiştir.


Bilinmez olmaya devam ediyor...



Ek: Problem çözme.

Sebep: Yazılı veriler tablo ayarlarıyla tutarsızdır.

Sebebim, belirli bir adımda yazılı verilerin boş olması, ancak orijinal tablonun "boş olmasına izin verilmediği" olarak ayarlanması, bu yüzden bu adım yapıldığında bir istisna olması.

Çok dikkatsizdim ve verilere bakarken veriye yazılmış diğer işlemleri gördüğümde bu sorunu hiç düşünmedim.





Önceki:Dianping ve Meituan, karşılıklı fayda ve kazan-kazan sonuçları için birleşecek.
Önümüzdeki:ASP.NET kök dizini almak için bir dizi metod
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com