首页 > 解决方案 > 使用移动 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)”所需的形式参数“回调”相对应的参数

谢谢

标签: c#.netamazon-web-servicesunity3damazon-dynamodb

解决方案


好吧,因为错误状态BatchWrite.ExecuteAsync需要一个类型的参数Amazon.DynamoDBv2.AmazonDynamoDBCallback

你没有通过它...

threadBatch.ExecuteAsync(theCallbackDelegate, someAsyncOptions);

不幸的是,我在文档中找不到这种类型,所以我现在不能告诉你签名

从下面的评论中,我只能猜测至少someAsyncOptions是可选的。

实际上,我发现的唯一一件事是BatchWrite.ExecuteAsync但不是您的错误……可能是不同的版本。


推荐阅读