天蓝色表存储中的事务

2023-12-20

假设我有:

using (TransactionScope scope = new TransactionScope()) 
{
    if (IndexExists(index.RowKey))
        DeleteIndex(index.RowKey); //deletes using TableOperation.Delete

    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConnectionString);
    CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
    CloudTable table = tableClient.GetTableReference(Const.IndexTable);

    TableOperation insertOperation = TableOperation.Insert(index);
    table.Execute(insertOperation);   
}

我想要的是:如果插入失败,则应撤消删除。这是正确的交易方式吗?一切都发生在同一个分区/表中。另外,事务的其他限制是什么,我在某处读到事务中不能存储超过 4 Mb,这仍然正确吗?


Answer recommended by Microsoft Azure /collectives/azure Collective

假设所有需要执行操作的实体都有相同的PartitionKey,您可以使用Entity Group Transaction http://msdn.microsoft.com/en-us/library/windowsazure/dd894038.aspxWindows Azure 表存储中提供的功能。它正是这样做的。如果事务中对实体的操作失败,则整个事务将回滚。

然而,您似乎正在删除一个实体并再次创建相同的实体。该场景在实体批量事务中不起作用,因为实体在事务中只能出现一次,并且只能对实体执行一个操作。看来您感兴趣的是替换实体。在这种情况下,您可以直接使用InsertOrReplace() http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.table.tableoperation.insertorreplace.aspx功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

天蓝色表存储中的事务 的相关文章

随机推荐

  • YouTube API 配额为零 [重复]

    这个问题在这里已经有答案了 我正在尝试使用 youtube api 来收集项目的一些数据 为此 我使用带有从电子邮件帐户获取的刷新令牌的微服务来生成 accessToken 但是 每当我使用生成的令牌时 我都会收到一条回复 说我已达到配额上
  • primefaces bar 图表自定义 x 轴

    我的应用程序中有 p barchart 图 类似于展示案例中的第二个条形图 http www primefaces org showcase ui barChart jsf http www primefaces org showcase
  • C++ 布尔值短路

    我是 C 新手 很好奇编译器如何处理布尔值的惰性求值 例如 if A 1 B 2 如果 A 等于 1 B 2 部分是否会被求值 No the B 2部分不予评价 这就是所谓的短路评估 http en wikipedia org wiki S
  • 在 Unity3D 中向着色器添加 alpha

    我对着色器编程一无所知 但现在我需要将 alpha 添加到我想要使用的着色器中 实际上我想淡入和淡出我的精灵 但它不在我使用的着色器中 Shader Shader Sprites ClipArea2Sides Properties Main
  • 如何将javascript中的数字格式化为两位小数?

    我需要在 JavaScript 中将数字格式化为两位小数 为了做到这一点 我使用 toFixed 方法 该方法工作正常 但在数字没有任何小数位的情况下 它不应显示小数点 例如10 00 应该只是 10 而不是 10 00 toFixed 将
  • 以 HTML 形式发送 jasperreport

    我在用JapserReports用于在 Java 中显示报告 我可以发送报告PDF格式到网络浏览器 现在我想将报告发送到HTML格式 以下是我发送报告的方法HTML format protected void processRequest
  • 使用 C++ 中的 openssl 以编程方式生成 CA 证书

    我想使用 openssl 和 C 生成 CA 证书 然后用它来签署证书 所以我实现了一个生成证书的函数 std shared ptr
  • 在主线程的镀铬块中同时录制视频和音频,导致音频无效

    所以 我认为这是一个相当有趣的问题 希望这不是一个棘手的问题 我有一个正在 Chrome 中录制的音频 视频 getUserMedia 流 单独来看 曲目录制得非常好 然而 当尝试同时记录两者时 其中一个会阻塞主线程 从而阻塞另一个线程 我
  • 如何处理后台和前台的 firebase 通知?

    我想在后台和前台处理 firebase 通知消息 我将发送一条消息 其中包含来自开发人员的 YouTube 链接 当用户点击通知栏时 它必须引导用户打开该链接 有谁知道它是如何完成的 public void onMessageReceive
  • 如何仅选择/格式化字典中的值到列表或 numpy 数组中?

    如何让它只打印平均值列表 我只需要它与我的 np 格式完全相同 数组 以便我可以比较它们以查看它们是否相同 Code import numpy as np from pprint import pprint centroids np arr
  • 跟踪 aws lambda/cloudwatch 日志

    了解如何访问 lambda 日志另一个答案 https stackoverflow com questions 47846959 how do you look at console log output of the amazon lam
  • 可以让 jqGrid 搜索框留在页面上吗?

    现在 我必须单击 jqGrid 搜索图标才能弹出搜索框 我想做的是始终在网格上方打开搜索框 而不是弹出窗口 我在他们的演示中没有看到任何内容 但我希望有人已经做到了或知道如何做到 做你需要的最简单的方法是 var grid list prm
  • 将 Woo Commerce 下拉菜单转换为单选按钮

    我在将变体下拉列表转换为支持 woocommerce 的网站的单选按钮时遇到问题 我已经尝试找到答案here https stackoverflow com questions 11819604 dropdown converted to
  • Android BLE Gatt 特性 WRITE_TYPE_NO_RESPONSE 不起作用

    我开发了一个连接到 CC2540 BLE 外设的 Android 应用程序 当我执行类型为无响应 WRITE TYPE NO RESPONSE 的特征写入时 我仍然会在应用程序级别收到 onCharacteristicWrite 回调 这种
  • 转换到 Swift 3 的困难

    从 Swift 2 转换到 Swift 3 后 即使在转换编辑 gt 转换 gt 到当前的 swift 语法之后 我收到很多错误 尤其 在我下载此 beta Xcode 8 0 并转换为 Swift 3 之前 我的项目总共显示了 90 个错
  • 删除大标题 UINavigationBar 中 UISearchController 顶部的 1px 行

    我正在从大风格的视图过渡UINavigationItem进入具有大风格的视图UINavigationItem and a UISearchController 我已经自定义了背景颜色UINavigationBar 由于某种原因 之间有 1p
  • PsExec 仅适用于“runas /netonly”,不适用于 -u 和 -p 参数

    我的意思是说 If I run runas netonly user computername username cmd 输入本地管理员帐户 用户名 的密码 然后输入psexec computername cmd 我现在有了一个工作 she
  • 获取脚本标签的数据属性?

    假设我有以下脚本标签 在那之内embed js文件 我怎样才能得到它的值data id属性 我正在努力保持embed js文件尽可能轻 所以理想情况下不需要使用某种 JavaScript 库 对于支持 html5 的现代浏览器 您可以使用d
  • 我可以多次使用

    标签,一个用于桌面,另一个用于移动吗?

    我正在使用 bootstrap 3 html 5 我的问题是 我可以使用 h1 在同一页面中多次标记 我正在使用一个 h1 对于桌面和其他 h1 对于移动设备 搜索问题后我有点困惑 任何人都可以正确地建议我正确的方法吗 我的代码如下 这些代

  • 天蓝色表存储中的事务

    假设我有 using TransactionScope scope new TransactionScope if IndexExists index RowKey DeleteIndex index RowKey deletes usin