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

  • BigDawsTv

    BigDawsTv

    20 HAZİRAN 2012
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010