TransactionScope и хранилище таблиц Azure

#azure #transactions #scope #azure-storage #azure-table-storage

#azure #транзакции #область #azure-хранилище #azure-table-storage

Вопрос:

Существует ли эквивалент TransactionScope, который можно использовать с хранилищем таблиц Azure?

я пытаюсь сделать следующее:

 using (TransactionScope scope = new TransactionScope) {
    account.balance -= 10;
    purchaseOrders.Add(order);
    accountDataSource.SaveChanges();
    purchaseOrdersDataSource.SaveChanges();
    scope.Complete();
}
  

Если по какой-то причине сохранение учетной записи работает, но сохранить заказ на покупку не удается, я не хочу, чтобы учетная запись уменьшала баланс.

Ответ №1:

В пределах одной таблицы и одного раздела вы можете записать несколько строк в транзакцию группы сущностей. Нет встроенного механизма транзакций при пересечении разделов или таблиц.

тем не менее: помните, что таблицы не содержат схемы, поэтому, если вам действительно нужна транзакция, вы можете сохранить как строку своей учетной записи, так и строку заказа на покупку в одной таблице, в том же разделе и выполнить однократное (транзакционное) сохранение.

Комментарии:

1. Таким образом, нет способа обеспечить целостность данных, когда дело доходит до таблиц Azure? Похоже, от этого все еще есть что пожелать. Спасибо за ответ

2. Нет, это не то, что сказал Дэвид. Он сказал, что нет способа выполнять транзакции между таблицами или разделами . Если вам нужно выполнять транзакции между несколькими объектами, вам необходимо убедиться, что они находятся в одном разделе одной и той же таблицы.