SORU
13 HAZİRAN 2011, PAZARTESİ


ASP.NET MVC istek başına bir DbContext (IOC konteyner olmadan)

Dilerim bu zaten cevap olmuştur, ama ne olursa IOC konteyner kullanıyorsanız değil istek başına bir Varlık Çerçevesi DbContext garanti ediyor musunuz? (Rastladığım cevaplar şimdiye kadar IOC konteyner çözümleri ile anlaşma.)

En çözümleri HttpContext.Current.Items sözlüğün içine kanca gibi görünüyor, ama nasıl istek bittiğinde DbContext bertaraf garanti ediyor musunuz? (Veya elden çıkarılacak DbContext? EF) ile kesinlikle gerekli değildir

Edit

Şu anda ve benim kontrol benim DbContext başlatmasını imha ediyorum, ama ben de ActionFilters ve benim Gelen (ve ben sadece fark, aynı zamanda bir kaç elemanları) benim DbContext birkaç ayrı örneklemesi var. Yani, benim DbContext örnekleme ve depolama giderlerini azaltmak için merkezileştirmek için iyi bir fikir olabileceğini düşündüm.

CEVAP
13 HAZİRAN 2011, PAZARTESİ


BeginRequest/EndRequest yöntemi, bu içeriğiniz düzgün isteği ile sona erdi bertaraf olmasını sağlar kullanırdım.

protected virtual void Application_BeginRequest()
{
    HttpContext.Current.Items["_EntityContext"] = new EntityContext();
}

protected virtual void Application_EndRequest()
{
    var entityContext = HttpContext.Current.Items["_EntityContext"] as EntityContext;
    if (entityContext != null)
        entityContext.Dispose();
}

Ve EntityContext sınıf...

public class EntityContext
{
    public static EntityContext Current
    {
        get { return HttpContext.Current.Items["_EntityContext"] as EntityContext; }
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • footiecyclo

    footiecyclo

    26 EYLÜL 2009
  • Noam Erez

    Noam Erez

    3 NİSAN 2012
  • vgeller1

    vgeller1

    22 Kasım 2009