1.1.1  数据库锁定错误

SQLite Error 5: 'database is locked'

1.1.1.1 概述

发生这个错误常见的一种原因是:数据库访问我们使用了多个上下文,并且不同的上下文环境嵌套使用。如下代码所示:

 xamarin开发常见错误总结--数据库被锁定异常

1.1.1.2 原因分析

不同的数据库上下文嵌套使用,有一个上下文使用了事务,而在这个事务中,又使用了另外了一个数据库上下文访问相同的库。

上面这个截图中的代码,DeleteAudioAndGetTheirIds使用的是Dapper,而它被EF的事务上下文所包裹。所以当运行这段代码时,必然发生数据库锁定错误。

1.1.1.3 解决方案

统一数据库上下文访问环境

1.1.1.4 总结

之后需要注意这种多上下文互相嵌套访问的情况。因为,单从代码的逻辑上是没有问题的。这就给我们定位错误带来一定的困难。

相关文章:

  • 2022-12-23
  • 2021-07-25
  • 2021-12-18
  • 2022-02-03
  • 2021-12-02
  • 2021-10-04
  • 2021-12-13
  • 2021-07-27
猜你喜欢
  • 2022-12-23
  • 2021-05-24
  • 2022-12-23
  • 2022-12-23
  • 2021-09-28
  • 2021-11-08
相关资源
相似解决方案