db.RunInTransaction 是否始终需要一种方法来检查或处理回滚?

2023-12-24

我接管的应用程序有这样的代码:

   db.RunInTransaction(() =>
   {
      foreach (CategorySource category in categories)
      {
         db.Insert(category);
      }
      Console.Out.WriteLine("Categories: \r\n {0}", categories.Count);
   }); db.Commit();

如果没有办法处理或检查是否有回滚,谁能告诉我在事务中运行它有什么好处?


对于您向我们展示的示例,即执行单个插入,如果不可能捕获异常和回滚,我认为在事务内执行此操作没有任何好处。然而,更可能的目的是提供一种简单的执行方法multipleSQL 命令,例如在单个事务中进行多次插入。如果您的代码希望从数据库的其他观察者的角度原子地进行这些插入,那么在那里使用事务是有必要的。即使没有回滚的机会,只要您相当确定/不担心可能不会发生故障,这一点也成立。

来自sqlite-net 文档 https://github.com/praeclarum/sqlite-net/wiki/Transactions,有一种方法可以进行回滚,但您需要使用低级 API,例如

db.BeginTransaction ();
try {
    foreach (CategorySource category in categories)
    {
        db.Insert(category);
    }
    Console.Out.WriteLine("Categories: \r\n {0}", categories.Count);
    db.Commit ();
}
catch (Exception) {
    db.Rollback ();
    throw;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

db.RunInTransaction 是否始终需要一种方法来检查或处理回滚? 的相关文章

  • 如何将 php Web 应用程序转换为桌面应用程序并保留数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个用 PHP 开发的 Web 应用程序 但大多数客户并没有一直连接到互联网 那么 有没有办法将应用程序转换为桌面应用程序 以便
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • 无法再在模拟器或设备上调试

    直到今天早上 我才能在物理设备和模拟器上调试我的 Xamarin iOS 应用程序 我认为这与最近的iOS更新有关 当我尝试部署到我的物理设备 iPad 时 我现在收到以下消息 错误 HE0003 无法加载框架 IBFoundation 路
  • 录制视频/音频时播放系统声音

    当我开始录制视频时 我试图按照苹果的要求播放 嘟嘟 声 我通过 SO 和其他来源发现 当您有音频输入而没有进行某些配置时 您无法播放声音 这是我尝试的配置方法 private void SetupAudio beepSound AssetB
  • 使用 greenDao 动态查询

    我需要验证一些条件来创建完整的查询 QueryBuilder qb getMyObjDao queryBuilder if 某些条件 qb where MyObjDao Properties Prop1 eq someValue elseq
  • Xamarin Forms:单击重新启动按钮时网格按钮 UI 中断

    我正在使用一个button在 的里面grid用于显示字母以实施Word search game 最初 用户界面看起来不错 但是当单击play again按钮 UI 中断 截屏 网格内设置按钮的代码 void SetGridLayout ch
  • SQLite 64位整数在jooq中被识别为int

    我有一个与 jOOQ 一起使用的 SQLite 数据库 当我使用 jOOQ 的代码生成工具时 它会按预期构建所有表和记录类 然而 所有的 SQLiteINTEGER列变成java lang Integer生成的代码中的字段 问题是 SQLi
  • 获取 Blob 图像并将该图像转换为 Bitmap 图像

    我正在从数据库中获取 blob 格式的图像 我想将其转换为位图图像 我用来将位图转换为 Blob 的代码放在下面 但是请告诉我如何反转它 ByteArrayOutputStream boas new ByteArrayOutputStrea
  • XAMARIN - 添加来自 youtube 的视频

    我搜索如何从 youtube 添加视频的信息 例如 我想从一些 YouTube 链接添加视频 我认为它应该在网络视图中 但我需要一些详细信息 因为我找不到有关我的问题的任何信息 您可以使用 webview 播放 youtube 视频 str
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • 在 Mono 上使用 Mono for android

    将 MonoDevelop 的编译器切换为 Mono 工具而不是 NET 看起来非常容易 您只需在 IDE 的设置下选择不同的框架即可 然而 在切换到 Mono 并使用 Mono 工具编译项目后 Mono for android 似乎不再是
  • 尝试重新打开已关闭的对象:sqlitequery

    所以本质上我查询数据库两次 我不明白这个错误真正来自哪里 因为我没有在任何地方关闭数据库 返回错误的代码是这样运行的 我查了一下 刚刚看到一个像我这样的案例 BeaconHandler pullAllDB new BeaconHandler
  • 启动注册期间无法加载程序集“System.Buffers”

    我的 Xamarin 表单应用程序大约 5 分钟前运行 然后突然停止工作 应用程序启动后立即关闭 下面显示了 Visual Studio 输出中的消息显示 Assembly Loader probing location System Bu
  • Android 模拟器无法与 Xamarin/Visual Studio Mac 配合使用

    你好 我真的很难让 Android 模拟器在我的 Mac 上运行 我需要采取哪些步骤才能使其正常工作 我在 MacOS Catalina 上安装了 Visual Studio 2019 这是一个新的空白 Xamarin Forms 项目 我
  • Sqlite3 查询在 iOS 8.2 下变得非常慢

    我制作了一个可以在应用程序内使用 sqlite 数据库的应用程序 在 iOS 8 2 之前 它工作得很好 但更新后 查询方法的工作速度慢了大约 100 倍 我试图查找有关此问题的信息 但尚未找到任何信息 有人有同样的经历吗 这是我的方法 到
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • 带外键或不带外键的引用有什么区别

    关于SQLite 带外键或不带外键的引用有什么区别 这有什么区别 CREATE TABLE players set id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL player id INTEGE
  • 在 sqlite 数据库中以 BLOB 形式存储的图像的最大大小是多少?

    我将图像作为 BLOB 存储在 sqlite 数据库中 谁能告诉我在 sqlite 数据库中以 BLOB 形式存储的图像的最大大小 See the SQLite 的限制 https www sqlite org limits html SQ

随机推荐