2015-06-26 47 views
1

在我的應用程序我使用亞馬遜對象持久化模型並使用DynamoDBContext進行操作(CURD和執行查詢)。我需要知道如何使用DynamoDBContext使用條件更新。它應該是異步的。DynamoDBContext有條件更新

我知道如何使用亞馬遜低級API來實現它。

我的應用程序是使用C#Dot Net(4.5) 開發的,謝謝。

回答

1

.NET異步DynamoDBContext.Save調用uses SaveHelper。 SaveHelper calls UpdateHelper with an operationConfig。 由於DynamoDBOperationConfig has a ConditionalOperator field,你可以嘗試使用它來調整放置/更新屬性值。請注意,您只能在此調用中的一個項目上強制執行條件。如果這樣做,則無法覆蓋已存在的項目,從而實現唯一性。儘管如此,我建議你使用UUID而不是遞增數字。儘管在一個項目的上下文中支持atomic counters,但它們不支持跨表中的所有項目。對於DynamoDBContext.Save調用不支持的有條件寫入,您始終可以使用the low-level APIcondition expression執行您的條件寫入。

+0

謝謝亞歷山大Patrikalakis。我需要創建自動增量編號(以保存唯一的ID),正如我們在關係數據庫中所做的那樣。我的計劃是使用條件更新來做到這一點。我知道可以在dyanmodb中使用原子序數來做到這一點。但我的應用程序必須支持併發請求。 – sigma

+0

我更新了我的答案以解決您的問題。 –

+0

謝謝。條件操作員字段只有「AND」「OR」。並且所需的ID應該是可讀的。不能使用UUID。 – sigma