首页 > 解决方案 > C# for loop dynamodb 添加项目只需添加一行

问题描述

我有一个问题,for循环添加项目
我看到aws表只是在完成后添加一行
我尝试了很多方法但它们不起作用

class Program : Base
{
    static void Main(string[] args)
    {
        stock_group stock_group = new stock_group();
        stock_group.default_insert();
    }
}
public async Task<bool> default_insert()
{
    List<tb_stock_group> data = JsonConvert.DeserializeObject<tb_stock_group>>(@"
        [{""id"":1,""name"":""水泥工業""},
        {""id"":2,""name"":""食品工業""},
        {""id"":3,""name"":""塑膠工業""}]
        ");

    for (int i = 0; i < data.Count; i++)
    {
        var response = await SaveToDynamoDB(data[i]);
        Console.WriteLine(response);
    }

    Console.WriteLine("success!");
    return false;
}

public async Task<T> SaveToDynamoDB<T>(T obj) where T :class
{
    DynamoDBContext context = new DynamoDBContext(Get_Client());
    await context.SaveAsync(obj);
    var response = await context.LoadAsync<T>(obj);

    return response;
}

标签: c#amazon-dynamodb

解决方案


程序很可能在大多数对 DynamoDB 的调用发生之前就退出了。这是因为您正在async从非async. 如果您将代码更改为static Main以下内容,它应该可以工作:

class Program : Base
{
    static void Main(string[] args)
    {
        stock_group stock_group = new stock_group();
        stock_group.default_insert().Wait();
    }
}

推荐阅读