dotnet 8 使用sqlsugar的bug 返回

SqlSugar 沟通中
6 226
该叫什么 落安 发布于2周前
悬赏:0 飞吻

在使用仓储模式IOC注入中一直报错,错误信息随机出现

        1. The connection does not support MultipleActiveResultSets

        2. 连接已关闭

        3. BeginExecuteReader requires an open and available Connection. The connection's current state is open

        4. Unable to cast object of type 'Microsoft.Data.ProviderBase.DbConnectionClosedConnecting'


注入我用的 ISqlSugarClient,我有两个数据库

image.png


BaseRepository层的代码

image.png

Repository层具体类的代码

在这个代码中,一直随机报上面的错误。直到我添加上  .CopyNew(),之后再没有报错。

image.png


我的问题是,我在Swagger或者是Apifox中调试,不会报这种错误,当前端调用后,同时有多个请求过来,就会随机生成以上错误,这个我不太理解 。


另一个是按照官方的说法,是IOC或者  CopyNew 二选一即可,但是我在IOC注入后,还是不行,在添加 CopyNew 后,再解决这个问题。不知道是为什么

image.png


热忱回答6

  • 连接字符串加这个试试:局部截取_20260115_165233.png

    0 回复
  • 这3个错都是线程安全问题,100%不是BUG


    看文档:偶发

    0 回复
  • 并不偶发,频率很高

    0 回复
  • @fate sta:并不偶发,频率很高

    0 回复
  • 这个错就是看文档:偶发 

    和频率没关系

    (建议写demo测试,有疑问提供demo)

    0 回复
  • 原因就是同一个db出现并发,保证一个请求一个db,保证异步用法正确。异步有许多注意点。

    0 回复