首页 > 解决方案 > DynamoDB Scan 未正确映射到 DynamoDBProperty?

问题描述

我遇到了一个问题,即 DynamoDB 扫描似乎没有将结果正确映射回数据类。这是一些代码:

[DynamoDBTable(TABLE_NAME)]
public class Settings
{
    public const string TABLE_NAME = "Settings";
    public const string PROPERTY_VALUE_INT = "I";

    [DynamoDBHashKey]
    public string K { get; set; }

    [DynamoDBProperty(PROPERTY_VALUE_INT)]
    public int ValueInt { get; set; }
}

我能够构造设置对象并使用 PutItem 成功地添加到带有字段“K”和“I”的数据库条目。但是,当我尝试扫描结果时,“I”字段的值不会映射到“设置”对象的“ValueInt”字段(因此 ValueInt 字段始终默认为 0)。如果我将“I”变量添加到 Settings 对象,则 Scan 将正确映射到该字段。为什么 Scan 无法识别 DynamoDBProperty 属性?

这是扫描代码:

AmazonDynamoDBConfig config = new AmazonDynamoDBConfig()
{
    ServiceURL = "http://dynamodb.us-east-2.amazonaws.com"
};
Client = new AmazonDynamoDBClient(config);
Context = new DynamoDBContext(Client);

List<Settings> settings = Context.Scan<Settings>().ToList();

标签: c#amazon-dynamodb

解决方案


弄清楚了。问题是我使用的是旧的 AWSSDK 包而不是较新的 AWSSDK.Core 和 AWSSDK.DynamoDBv2 包


推荐阅读