我正在尝试学习使用C#使用DynamoDB 我有部分更新,放置,删除工作。 条件更新有效(如果属性是根对象的一部分)。
我创建了以下模型。
具有很多属性的人。 以下作品:
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 :(得分:2)
尝试将Name子属性名称外部化为ExpressionAttributeNames。
Expression expr = new Expression();
expr.ExpressionStatement = "Pet.#name = :name";
expr.ExpressionAttributeNames["#name"] = "Name";
expr.ExpressionAttributeValues[":name"] = "Lilleper";