首页 > 解决方案 > 通过 c# AWS SDK 在 DynamoDB 中删除

问题描述

尝试在 c# 中从 DynamoDB 中删除时出现错误“发生一个或多个错误。(键属性 MyID 必须是原始类型”

  foreach (var doc in docs)
                    {
                        Logger.LogInformation($"Deleting docs:");
                        await DynamoDbService.DeleteListFromTableAsync(new List<Document> { doc }, requestData.tableName);
                        Logger.LogInformation($"Deleted Docs.");                        
                    }

DynamoDbService.DeleteListFromTableAsync 在给定的文档上运行 batchWrite.AddItemToDelete 函数。

任何人都知道我为什么会收到此错误以及如何解决它?

标签: c#.netamazon-web-servicesamazon-dynamodbaws-sdk

解决方案


如果不知道自定义函数背后的代码或模型本身,就很难分辨。但是错误告诉我们的是,密钥必须是原始(字符串、数字或二进制)值,而事实并非如此。

根据文档,

创建表或二级索引时,必须指定每个主键属性(分区键和排序键)的名称和数据类型。此外,每个主键属性必须定义为字符串、数字或二进制类型。

在此处查看有关 Dynamo 的 AWS 文档

如果您可以发布您的模型和底层代码,则更容易识别实际问题。


推荐阅读