AWSSDK.DynamoDBv2 的 Table.PutItemAsync 总是 returns 空
Table.PutItemAsync of AWSSDK.DynamoDBv2 always returns null
在 .net core 2.1 应用程序中,我使用 AWSSDK.DynamoDBv2 (v3.3.101.18) 库的 Table.PutItemAsync 向 DynamoDB table 添加了一条新记录:
var doc = await _table.PutItemAsync(document);
我可以看到该记录已成功添加到 AWS 控制台中,但它总是 return 为空,而预期的 return 值应该是文档:
public Task<Document> PutItemAsync(Document doc, CancellationToken cancellationToken = default);
我想知道我是否遗漏了一些明显的东西?
您需要在 PutItemOperationConfig 中指定 ReturnValues 枚举类型,并将此配置包含在您的请求中。默认为 return None。如果您指定 ReturnValues.AllOldAttributes(此请求的唯一其他选项),那么如果您覆盖了一个项目,您将取回一个包含旧项目属性的文档,或者如果您添加了一个新项目,您将取回一个空项目。
var putItemOperationConfig = new PutItemOperationConfig()
{
ReturnValues = ReturnValues.AllOldAttributes
};
在 .net core 2.1 应用程序中,我使用 AWSSDK.DynamoDBv2 (v3.3.101.18) 库的 Table.PutItemAsync 向 DynamoDB table 添加了一条新记录:
var doc = await _table.PutItemAsync(document);
我可以看到该记录已成功添加到 AWS 控制台中,但它总是 return 为空,而预期的 return 值应该是文档:
public Task<Document> PutItemAsync(Document doc, CancellationToken cancellationToken = default);
我想知道我是否遗漏了一些明显的东西?
您需要在 PutItemOperationConfig 中指定 ReturnValues 枚举类型,并将此配置包含在您的请求中。默认为 return None。如果您指定 ReturnValues.AllOldAttributes(此请求的唯一其他选项),那么如果您覆盖了一个项目,您将取回一个包含旧项目属性的文档,或者如果您添加了一个新项目,您将取回一个空项目。
var putItemOperationConfig = new PutItemOperationConfig()
{
ReturnValues = ReturnValues.AllOldAttributes
};