尝试在DynamoDb中保存枚举时出现“类型不受支持”错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试在DynamoDb中保存枚举时出现“类型不受支持”错误相关的知识,希望对你有一定的参考价值。

我有以下用DynamoDb属性修饰的类:

[DynamoDBTable("Orders")]
public class OrderDynamoModel
{
    [DynamoDBHashKey]
    public int OrderId { get; set; }

    [DynamoDBProperty]
    public DateTime DateTimeUtc { get; set; }

    [DynamoDBProperty]
    public int TId { get; set; }

    [DynamoDBProperty]
    public OrderStatus Status { get; set; }

    [DynamoDBProperty]
    public string Order { get; set; }
}

[Flags]
public enum OrderStatus
{
    None = 0,
    Pending = 1,
    Completed = 2
}

当我尝试使用DynamoDBContext.Save保存类的实例时,我得到以下错误:

类型OrderStatus不受支持,无法实例化

当我将OrderStatus中的属性类型更改为int并相应地更新代码时,它可以成功地将记录保存在DynamoDb中。

知道为什么我不能使用枚举吗?

答案

您使用的是旧版本的AWS SDK,version 2,自2016年以来尚未更新。您需要升级到version 3,至少版本3.1.1,因为添加了enum类型支持时。

有关更多信息,请参阅此AWS Blog

以上是关于尝试在DynamoDb中保存枚举时出现“类型不受支持”错误的主要内容,如果未能解决你的问题,请参考以下文章

从 DynamoDB 获取项目时出现“提供的关键元素与架构不匹配”错误

尝试在枚举中添加 IsSerializable 时出现 gwt 错误

将 DAX 与 DynamoDB 一起使用时出现无法配置集群端点错误

AWS Amplify + Graphql + Dynamodb:突变时出现 ConditionalCheckFailedException 错误

对 DynamoDb 使用细粒度访问控制时出现 AccessDeniedException

带有 DynamoDB 后端的 terraform:创建新工作区时出现 400 Bad Request