我正在使用以下代码:
Dir | Rename-Item –NewName { $_.Name.Replace(".","_") }
我要尝试做的只是在EventCode不是CC的情况下保存记录。目前,它一直在保存。我可以先检索记录,进行检查,然后根据需要调用SaveAsync-但是我想在SaveAsync调用中全部完成。这可能吗?
答案 0 :(得分:0)
除非我错过了一些事情,否则看起来更高级别的api不可能做到这一点。我最终重构为以下内容:
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
UpdateItemRequest updateItemRequest = new UpdateItemRequest()
{
TableName = "QTrackStatus",
ReturnValues = ReturnValue.ALL_NEW,
ConditionExpression = "EventCode <> :ec",
UpdateExpression = "SET EventCode = :ec, EventDateTime = :edt, EventLocation = :el, EventLastUpdate = :elu",
ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
{
{ ":ec", new AttributeValue("CC") },
{ ":edt", new AttributeValue("2019-09-09 14:00:30") },
{ ":el", new AttributeValue("BFS") },
{ ":elu", new AttributeValue() { N = ((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds).ToString() } }
},
Key = new Dictionary<string, AttributeValue>()
{
{ "Key", new AttributeValue("m@m.com") }
}
};
try
{
UpdateItemResponse updateItemResponse = await client.UpdateItemAsync(updateItemRequest);
}
catch(ConditionalCheckFailedException e)
{
}
这使我可以实现自己的目标。