绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
.netcore AutoFac注入DbContext类型的生命周期问题
2019-08-30 10:18:06

在.netcore项目中,通过AutoFac注入DbContext为InstancePerDependency。

在调用时通过创建不同的scope,得到的实例是不一样的。代码如下

using (var scope = IocContainer.AutofacContainer.BeginLifetimeScope())

{

using (MySqlDbContext mySqlDbContext = scope.Resolve())

{

//TODO

}

在一个请求的业务里,需要开启多个异步Task操作DbContext.这个时候,会出现异常

Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling Dispose() on the context, or wrapping the context in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances

根据AutoFac注入的类型为InstancePerDependency,和scope的作用域来看,不应该出现这个问题。请问如何解决?

分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~