6K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

Db.GetDbContext() 获取的上下文,使用时发生错误(经测试 4.1.9 无异常,4.2.7 会报错)

已完成
创建于  
2022-08-22 15:04

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue,将直接关闭。

Furion 版本号

V4.2.7


.NET SDK 版本号

  • .NET5
  • .NET6
  • .NET7

Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp

操作系统和版本

  • Windows(版本)
  • Linux(版本)
  • MacOS(版本)
  • 其他(版本)

代码环境

  • 开发环境(Development)
  • 生产环境(Production)
  • 测试环境(Tests/单元测试/集成测试 )

描述你的问题

执行如下代码,会发生报错

using (var db = Db.GetDbContext())
{
    var raw = await db.Set<实体>().ToListAsync();
}

报错信息

Cannot access a disposed object.
Object name: 'MySqlConnection'.

异常堆栈信息

未返回堆栈信息


测试项目代码

⚠⚠ 必须提供完整可运行且包含错误的 Git 仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则不予处理。⚠⚠


数据库信息

  • Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

不发生异常,解决该问题


评论 (7)

song 创建了任务

提供一个demo,我直接copy你的代码是正常的,请具体说明在什么场景下使用。

另外查看了代码修改记录,这里有14个月没有动过了。

我知道了,你在 Web 请求中创建了通过这个获取 Db.GetDbContext() 数据库上下文,然而因为基于 Web 请求,所以返回的是同一个对象,但你手动 using 了,导致请求结束自动释放出现了问题。

输入图片说明

也算 Furion 的bug,我来修正。

输入图片说明

简单写了一下

已修正:d51ac8d

马上发布。

v4.2.8 版本发布,已修正。

百小僧 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227 5074431 songzhidan 1578979681
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助