Validation failed for one or more entities. See 'EntityValidationErrors' property for more details

0

Asp.Net MVC ve Entity Framework kullanan web uygulamamda şu şekilde hata alıyorum:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details

icerik.Okunma = icerik.Okunma ?? 0;
                icerik.Rating = icerik.Rating ?? 0;
                icerik.ToplamOylayan = icerik.ToplamOylayan ?? 0;
                icerik.AnaHaber = string.IsNullOrEmpty(icerik.AnaHaberGorselTur) ? false : true;

                db.Icerik.Add(icerik);
                db.SaveChanges();

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details hatası almamın nedeni ne olabilir?

alattin alattin (16984)
10 yıl önce sordu

    Toplam 2 Cevap


    1

    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details hatasının pek çok farklı sebebi olabilir. En çok yapılan hatalar:

    1. Veritabanında (database) NULL olamaz olarak yapılandırılmış (Allow Nulls işareti kaldırılmış) bir alana NULL değer girmeye çalışmak
    2. Belirtilen üst sınır dışında veri giriyi yapmaya çalışmak, örneğin, nvarchar(5) olan bir alana 5 karakterden uzun veri girişi yapmaya çalışmak.

    yukarıdaki iki hata en çok yapılan hatalardır.

    Hatayı yakalayabilmek için try catch blogundan yararlanabilirsiniz.

     try
                {
                    icerik.Okunma = icerik.Okunma ?? 0;
                    icerik.Rating = icerik.Rating ?? 0;
                    icerik.ToplamOylayan = icerik.ToplamOylayan ?? 0;
                    icerik.AnaHaber = string.IsNullOrEmpty(icerik.AnaHaberGorselTur) ? false : true;
    
                    db.Icerik.Add(icerik);
                    db.SaveChanges();
    
                }
                catch (DbEntityValidationException e)
                {
    
                    foreach (var eve in e.EntityValidationErrors)
                    {
                       Response.Write(string.Format("Entity türü \"{0}\" şu hatalara sahip \"{1}\" Geçerlilik hataları:", eve.Entry.Entity.GetType().Name, eve.Entry.State));
                        foreach (var ve in eve.ValidationErrors)
                        {
                            Response.Write(string.Format("- Özellik: \"{0}\", Hata: \"{1}\"", ve.PropertyName, ve.ErrorMessage));
                        }
                        Response.End();
                    }

     

    alattin alattin (16984)
    10 yıl önce cevaplandı

      0

      private void simpleButton1_Click(object sender, EventArgs e)
              {
                   NorthwindTestEntities src = new NorthwindTestEntities();
                  
                 
      
                  Category ctg = new Category();
                 
                  ctg.CategoryName =this.textEdit1.Text.ToString();
                  ctg.Description =this.textEdit2.Text.ToString();
                  ctg.Picture = null;
      
                  src.Categories.Add(ctg);
                  src.SaveChanges();
      
                  dataGridView3.DataSource = src.Categories.ToList();
                  
      
              }

      Textedit sonrası Text yazarak sorunu hallettim. Sanırsam girilen değeri Text'e çevirerek işleyebiliyor. Null ve karakter sınırı olaylarını denedikten sonra deneyebilirsiniz.

      wixpey wixpey (1)
      6 yıl önce cevaplandı

        üyelik gerektirir

        Cevap yazabilmek için üye girişi yapmalısınız.

        Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
        uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol