c# - 使用移动 AWS 开发工具包 (Unity) 和 DynamoDB 进行批量操作
问题描述
我正在使用带有 Unity 的移动 AWS 开发工具包将数据存储在 DynamoDB 中。它工作得很好,但一次只写一个文档(我有成千上万的文档要存储),这让我的应用程序陷入困境。问题是我没有找到有关批处理的文档。有谁知道如何实现批量写入?
这是我用来一次编写 1 个项目的代码:
foreach (var dataDocument in listOfDocuments)
{
MyTable.PutItemAsync(dataDocument, (r) => { });
}
我试过了:
private void LoadAWSTable1()
{
DynamoDBContext context = new DynamoDBContext(client);
DynamoDBOperationConfig config = new DynamoDBOperationConfig();
config.SkipVersionCheck = true;
var threadBatch = context.CreateBatchWrite<Thread>(config);
threadBatch.ExecuteAsync();
listOfDocuments.Clear();
}
但是 ExecuteAsync() 给出了这个错误:
错误 CS7036 没有给出与“BatchWrite.ExecuteAsync(AmazonDynamoDBCallback, AsyncOptions)”所需的形式参数“回调”相对应的参数
谢谢
解决方案
好吧,因为错误状态BatchWrite.ExecuteAsync
需要一个类型的参数Amazon.DynamoDBv2.AmazonDynamoDBCallback
你没有通过它...
threadBatch.ExecuteAsync(theCallbackDelegate, someAsyncOptions);
不幸的是,我在文档中找不到这种类型,所以我现在不能告诉你签名
从下面的评论中,我只能猜测至少someAsyncOptions
是可选的。
实际上,我发现的唯一一件事是BatchWrite.ExecuteAsync
但不是您的错误……可能是不同的版本。