Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 原子写入多个表_C#_Azure_Azure Table Storage - Fatal编程技术网

C# 原子写入多个表

C# 原子写入多个表,c#,azure,azure-table-storage,C#,Azure,Azure Table Storage,我正在使用Azure表存储,我想对多个表进行原子写入。这意味着我希望有一个将实体写入两个表的事务,如果一个写入失败,事务将回滚 我一直在查看文档,我看到有事务,但它们似乎只用于单表写入 表服务支持在同一个表中且属于同一分区组的实体上执行批处理事务 有没有一种方法可以实现多表写入?假设partitionKey相同 有没有一种方法可以实现多表写入?假设 partitionKey是否相同 开箱即用,此类功能不可用。实体批处理事务仅适用于单个表。不能将其用于多个表 我们在应用程序中所做的是实现我们自己

我正在使用Azure表存储,我想对多个表进行原子写入。这意味着我希望有一个将实体写入两个表的事务,如果一个写入失败,事务将回滚

我一直在查看文档,我看到有事务,但它们似乎只用于单表写入

表服务支持在同一个表中且属于同一分区组的实体上执行批处理事务

有没有一种方法可以实现多表写入?假设
partitionKey
相同

有没有一种方法可以实现多表写入?假设 partitionKey是否相同

开箱即用,此类功能不可用。实体批处理事务仅适用于单个表。不能将其用于多个表

我们在应用程序中所做的是实现我们自己的“
最终一致性”
”模式。在我们的应用程序中,有些数据需要写入多个表中。我们所做的不是将数据直接写入多个表中,而是将其作为消息写入队列中

然后我们有一个后台进程,它不断地轮询这个队列并拾取消息。然后这个后台进程尝试写入不同的表。只有当我们能够写入所有表时,消息才会从队列中删除

在写入表时,我们考虑了
幂等性
,即我们假设数据可能存在于表中。因此,我们总是执行
InsertOrReplace
(或
InsertOrMerge
)而不是
Insert