ObjectContext örneği atıldı ve artık bağlantı gerektiren işlemler için kullanılamaz.

0

Entity Framework kullanan Asp.Net MVC uygulaması aşağıdaki gibi hata veriyor:

ObjectContext örneği atıldı ve artık bağlantı gerektiren işlemler için kullanılamaz.

Açıklama: Geçerli web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın izlemesini gözden geçirin.

Özel Durum Ayrıntıları: System.ObjectDisposedException: ObjectContext örneği atıldı ve artık bağlantı gerektiren işlemler için kullanılamaz.

Entity Framework ObjectContext örneği atıldı ve artık bağlantı gerektiren işlemler için kullanılamaz. hatasının sebebi ve çözümü nedir?

alattin alattin (17060)
9 yıl önce sordu

    Toplam 1 Cevap


    0

    ObjectContext örneği atıldı ve artık bağlantı gerektiren işlemler için kullanılamaz. hatası dispose edilmiş bir DbContext nesnesi yüzünden oluşabilir. 

    Örneğin ASP.NET MVC uygulamanızda View tarafından bir Include edilmemiş navigation propery'e erişmek istiyorsanız ve DBContext nesnenizi using ifadesi ile kullandıysanız bu hatayı alırsınız.

    Asp.Net MVC örnek Navigation Property kullanan View:

    <p>
    @Model.Urun.Kategori.Ad
    </p>

    Controller tarafı

     using (CMSDbContext db = new CMSDbContext())
                {
                    u = db.Urunler                  
                        .Include(t => t.Kategori)                  
                        .Where(t => t.Id == urunId).SingleOrDefault();
                
                }  

    bu örnekte Kategori Include edilerek önceden yüklenmiştir (Eager loading). Eğer Include elmeseydik ve Kategori navigation property yani gezinme özelliğine view içinden erişmek isteseydik, ObjectContext örneği atıldı ve artık bağlantı gerektiren işlemler için kullanılamaz. hatası ile karşılaşacaktık.

    Erişmek istediğiniz navigation propery'i Include ederek bu hatadan kurtulabilirsiniz.

    alattin alattin (17060)
    9 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