我已經配置了我的IoC容器,團結解決我IDbContext
的EntityFramworkDbContext
在我工作單位的構造。IoC容器應該解析OR映射器容器嗎?
我想知道如果這是最佳實踐,或者如果我只是在未來的頭痛未處置DbContext。這是一個ASP.Net MVC應用程序,所以會有很多短壽命容器。每個容器的使用期限爲每個請求
任何建議?
public class UnitOfWork : IUnitOfWork
{
private readonly IDbContext context;
public UnitOfWork(IDbContext context)
{
this.context = context;
}
}
public class SampleService : ISampleService
{
private readonly IUnitOfWork unitOfWork;
public SampleService(IUnitOfWork unitOfWork)
{
this.unitOfWork = unitOfWork;
}
}
相關:http://stackoverflow.com/questions/10585478/one-dbcontext-per-web-request-why – Steven
您應該不會爲每個請求構建一個容器,因爲這會對性能產生嚴重的負面影響你的應用和配置的複雜性。儘管使用Unity的子容器功能很好,但通常仍然不需要,性能也很重要。 – Steven
IoC容器不是通過請求,而是IoC容器構建一次,就好像在應用程序的生命週期中一樣。我的'DbContext'是每個請求,所以每個服務調用將只有一個IUnitOfWork,因此都是相同的DbContext。每個服務調用都被視爲單線程。 –