2017-01-26 20 views
0

DynamoDBをC#で使用する方法を学習しようとしています 部分的な更新、取り込み、削除があります。 条件付き更新が機能します(属性がルートオブジェクトの一部である場合)。条件付き更新Dynamobを入れ子にしたオブジェクト

次のモデルを作成しました。属性の多くの

enter image description here

人。 次の作品:

Expression expr = new Expression(); 
expr.ExpressionStatement = "Age = :age"; 
expr.ExpressionAttributeValues[":age"] = 26; 

UpdateItemOperationConfig config = new UpdateItemOperationConfig 
{ 
    ConditionalExpression = expr, 
    ReturnValues = ReturnValues.AllNewAttributes 
}; 

Document updatedPerson2 = personCatalog.UpdateItem(doc, config); 

私の状態がペットの名前だったらどうなりますか?
私は運とアプローチなどのカップルを試してみました:

expr.ExpressionStatement = "Pet.Name = :name"; 
expr.ExpressionAttributeValues[":name"] = "Lilleper"; 

は、誰かが助けて:)それとも、正しい方向に私を微調整することができます願っています。

+0

Strange。 私はそれにcange場合: expr.ExpressionStatement = "Pet.Age =:age"; expr.ExpressionAttributeValues [":age"] = 30; それは動作しますか?文字列は機能しませんか? – Kiksen

答えて

2

Nameサブ属性名をExpressionAttributeNamesに外部化してみます。

Expression expr = new Expression(); 
expr.ExpressionStatement = "Pet.#name = :name"; 
expr.ExpressionAttributeNames["#name"] = "Name"; 
expr.ExpressionAttributeValues[":name"] = "Lilleper"; 
+0

恐ろしい:)助けてくれてありがとう。 – Kiksen