Validation failed for one or more entities hatası

Bu makalem de programcının en çok karşılaşabileceği hatalardan olan "validation failed for one or more entities " hatasından bahsedeceğim.

Bu hata genelde veri tabanına veri ekleme veya güncelleme işlemleri sırasında oluşuyor.

1 ) SqlServer'da herhangi bir tabloda nvarchar(20) tipinde tanımladığınız bir kolon 20 karakterden fazla veri girişi olduğunda bu hata ile karşılaşılır. 

2 ) Yine SqlServer'da bir tabloda notnull olarak tanımladığınız bir kolona null değer atmaya çalıştığınızda da bu hata ile karşılaşılır.

 

Normalde hata oluştuğu zaman hata dönüşü "validation failed for one or more entities " şeklinde döner. Gerçek hatayı görebilmek aşağıdaki kod bloğunu kullanabilirsiniz.

Hata olduğunu düşündüğünüz kısmı try catch içine alıp catch kısmını aşağıdaki gibi oluşturursanız gerçek hatayı görebilirsiniz.

 

	try{
	}
	catch (DbEntityValidationException hata)

	            {
	                foreach (var ht in hata.EntityValidationErrors)
	                {
	                   Response.Write(hata.Entry.Entity.GetType().Name+" "+ht.Entry.State);


	                    foreach (var valerror in ht.ValidationErrors)

	                    {

	                        Response.Write(valerror.PropertyName + " " + valerror.ErrorMessage);


 }

}

}

İyi Kodlar!