C# AWS DynamoDB条件项删除

C# AWS DynamoDB条件项删除,c#,amazon-web-services,amazon-dynamodb,aws-sdk,C#,Amazon Web Services,Amazon Dynamodb,Aws Sdk,我有一个DynamoDB表,其中一个属性作为主键ItemName 添加到表中的每个属性都使用当前UTC时间戳命名 当我删除最后一个属性时,我想有条件地删除该项,该属性将检查除ItemName之外是否还有其他属性,如果没有,我想删除该项 有没有办法这样做 谢谢。据我所知,没有办法告诉DynamoDB自动为您执行此操作。如果您使用该方法向不存在的项添加属性,则它们将为您创建一个新项,但在删除所有属性(键除外)后,它们不会自动删除该项 最好的方法是使用UpdateItem方法的属性。将其设置为ALL\

我有一个DynamoDB表,其中一个属性作为主键
ItemName

添加到表中的每个属性都使用当前UTC时间戳命名

当我删除最后一个属性时,我想有条件地删除该项,该属性将检查除
ItemName
之外是否还有其他属性,如果没有,我想删除该项

有没有办法这样做


谢谢。

据我所知,没有办法告诉DynamoDB自动为您执行此操作。如果您使用该方法向不存在的项添加属性,则它们将为您创建一个新项,但在删除所有属性(键除外)后,它们不会自动删除该项

最好的方法是使用UpdateItem方法的属性。将其设置为
ALL\u NEW
,以获取返回给您的行的当前状态。然后,您的代码可以检查该项上是否有任何附加属性,并根据需要调用该方法

编辑:
此外,您可以在
DeleteItem
方法调用中添加一个属性,以在删除属性之前检查属性是否存在。

Thank you@coffeeplease,我所做的是在删除属性后获取该项目,这显然不是很好。问题是,它仍然不能解决我的问题,因为在我完成检查新属性之后,直到我删除该项之前,可以在其他地方创建另一个属性,我将简单地删除它。很抱歉,我不清楚创建项目/删除属性的方式。无论如何,谢谢即使您能够删除该项目,如果另一个属性出现,它会使用UpdateItem添加该属性吗?如果是这种情况,它最终将重新创建该项。这就是你想要的吗?我很好奇你的情况,如果你能分享任何额外的细节…如果我能够删除该项目,然后才使用UpdateItem添加属性,那么我将不会对该项目有任何问题。但是如果在删除之前创建了新属性,我不想删除该项。我正在使用一个表来管理锁定机制。我可以为每个帐户设置多个读锁和一个写锁(单独)。您还可以使用ConditionExpression参数使DeleteItem调用有条件。我编辑了我的答案以添加此信息。问题是我使用UTC时间戳作为属性名称,因此无法使用属性\u not\u exists/attribute\u exists