Sqlite error 5: database is locked 返回

SqlSugar 处理完成
4 697

在做数据同步时,我开启了事务,在插入的时候调用了动态类的方法,结果报错:Sqlite error 5:  database is locked  

 dstDb.BeginTran();

foreach(var srcModel in srcList

{

  await dstDb.CopyNew().InsertableByObject(srcList).ExecuteCommandAsync();

}

  dstDb.CommitTran();



或者说InsertableByObject有没有批量提交的方法:AddQuene(),我猜想不频繁地打开关闭数据库是不是就不报错了

热忱回答4

  • fate sta fate sta VIP0
    2024/8/23

    var newdb= dstDb.CopyNew();

    下面全部用 newdb 保证同一个db

    0 回复
  • 意思是var newdb= dstDb.CopyNew();要写在循环的外侧是吗?

    0 回复
  • fate sta fate sta VIP0
    2024/8/25

    var newdb= dstDb.CopyNew();

     newdb.BeginTran();

    foreach(var srcModel in srcList )

    {

      await newdb.CopyNew().InsertableByObject(srcList).ExecuteCommandAsync();

    }

      newdb.CommitTran();


    0 回复
  • 我用的是SqlsugarScope  ,并且是单例的,这样是不是不用CopyNew也是线程安全的?

    0 回复