我正在使用Entity Framework + Repositories + UnitOfWork层,服务层和Web表示层运行MVC5应用程序。 Ninject用于解析依赖关系,服务绑定都在单独的模块中,如下所示
public class ServiceModule : NinjectModule
{
public override void Load()
{
Bind<IUnitOfWork>().To<EfUnitOfWork>().InRequestScope();
Bind<ICategoriesService>().To<CategoriesService>();
.
.
other bindings...
}
}
问题在于,对于需要2个以上服务的请求,每个服务都创建了另一个unitOfWork,尽管&#34; InRequestScope&#34;但是当我切换到:
Bind<IUnitOfWork>().To<EfUnitOfWork>().InScope(c => System.Web.HttpContext.Current);
Everythings完美运行,只创建了一个unitOfWork实例来处理请求。 什么可能是错的?