3

我们有 MVC3 控制器创建和调用(直接或间接)的标准模块“链”-“MyController”->“MyService”->“MyRepository”->“MyUnitOfWork”

这些模块在 App_Start 中注册如下:

var builder = new ContainerBuilder();

builder.RegisterType<MyRepository>().AsImplementedInterfaces().InstancePerHttpRequest();
builder.RegisterType<MyUnitOfWork>().AsSelf().InstancePerHttpRequest();
builder.RegisterType<MyService>().AsImplementedInterfaces().InstancePerHttpRequest();

IContainer container = builder.Build();
DependencyResolver.SetResolver( new AutofacDependencyResolver( container ) );

当我们尝试从控制器并行执行对服务的多个调用时,我们在 EF4 中遇到异常(我们使用 DbContext 作为 UoW 的基类)。

在同一个 HttpRequest 的上下文中对服务进行并行调用的模块的正确范围是什么?

谢谢 :)

4

1 回答 1

2

Sounds like 1 DbContext per HttpRequest isn't gonna work for you. You probably need InstancePerDependency() and then request a new DbContext per thread.

于 2012-06-19T12:55:30.897 回答