gpt4 book ai didi

asp.net-mvc - Autofac 使用 Entity Framework 确定 MVC3 中工作单元的范围

转载 作者:行者123 更新时间:2023-12-03 03:45:38 25 4
gpt4 key购买 nike

我们有一个标准的模块“链”,MVC3 Controller 创建并调用(直接或间接) - “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 ) );

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

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

谢谢:)

最佳答案

听起来每个 HttpRequest 1 个 DbContext 不适合你。您可能需要 InstancePerDependency(),然后为每个线程请求一个新的 DbContext。

关于asp.net-mvc - Autofac 使用 Entity Framework 确定 MVC3 中工作单元的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com