EntityValidationError SaveChanges() Hatası
Merhaba,
EntityValidationError hatası alan bir kimse için daha detaylı bilgi gerekmektedir. Birçok nedeni bulunuyor. Try-Catch bloğu kullanın ve catch kısmına:
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
{
Exception raise = dbEx;
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
string message = string.Format("{0}:{1}",
validationErrors.Entry.Entity.ToString(),
validationError.ErrorMessage);
// raise a new exception nesting
// the current instance as InnerException
raise = new InvalidOperationException(message, raise);
}
}
throw raise;
}
Kod satırını yazın. Size daha detaylı mesaj bilgisi verecektir. View Details diyerek mesaj bilgisine bakın.Bende genellikle veritabanındaki sütunlardaki satır sayısından kaynaklanıyor. nvarchar(50) ise dosya adı daha uzun olabilir. Bunu arttırarak düzeltebiliyorum.
Çözüm 2:
Bu sorun size hatanın ne olduğunu, nereden kaynaklandığını tam olarak söylemiyor. Bunu anlamak için Catch bloğu içerisinde QuickWatch yapıp EntityValidationErrors'tan yararlanmak. Örn:
try
{
......
}
catch (Exception Ex)
{
}
Ex'e sağ tıklayıp QuickWatch'a tıklayın ya da CTRL+ALT+Q yapın. Üst kısımdaki arama yerine şunu yazın:
((System.Data.Entity.Validation.DbEntityValidationException)Ex).EntityValidationErrors
ya da şunu:
((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors
Size count döndürecektir. Bu count ise size problemi söyleyebilir.
Umarım siz de düzeltebilirsiniz.
Iyi çalışmalar,
Recep.
Mesaj 14.03.2016 01:34:57 tarihinde Rserit tarafından düzenlenmiştir.
Mesaj 19.10.2016 11:35:36 tarihinde Rserit taraf?ndan d?zenlenmi?tir.
Developer.