Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

DynamoDB 属性

此部分介绍了对象持久化模型提供的属性,您可以通过这些属性将您自己的类和属性映射到 DynamoDB 表和属性。

注意

在以下属性中,只有 DynamoDBTableDynamoDBHashKey 是必需属性。

DynamoDBGlobalSecondaryIndexHashKey

将类属性映射到全局二级索引的分区键。如果您需要对 全局二级索引 执行 Query 操作,请使用此属性。

DynamoDBGlobalSecondaryIndexRangeKey

将类属性映射到全局二级索引的排序键。如果您需要对全局二级索引执行 Query 操作并想使用索引排序键优化结果,请使用此属性。

DynamoDBHashKey

将类属性映射到表的主键的分区键。主键属性不能为集合类型。

以下 C# 代码示例将 Book 类映射到 ProductCatalog 表,将 Id 属性映射到表的主键分区键。

Copy
[DynamoDBTable("ProductCatalog")] public class Book { [DynamoDBHashKey] public int Id { get; set; } // Additional properties go here. }

DynamoDBIgnore

指示应忽略相关联的属性。如果您不想要保存任何类属性,就可以添加此属性让 DynamoDBContext 在表中保存数据元时不要包含此属性。

DynamoDBLocalSecondaryIndexRangeKey

将类属性映射到local secondary index的排序键。如果您需要对local secondary index执行 Query 操作并想使用索引排序键优化结果,请使用此属性。

DynamoDBProperty

将类属性映射到表属性。如果类属性映射到同名表属性,您就无需指定此属性。然而,如果名称不同,您就可以使用此标签提供映射。在以下 C# 语句中,DynamoDBPropertyBookAuthors 属性映射到表中的 Authors 属性。

Copy
[DynamoDBProperty("Authors")] public List<string> BookAuthors { get; set; }

DynamoDBContext 会使用此映射信息在将数据元数据保存到对应的表中时创建 Authors 属性。

DynamoDBRenamable

为类属性指定替代名称。如果您要编写用于将任意数据映射到 DynamoDB 表的自定义转换器,且类属性的名称不同于表属性,则该操作十分有用。

DynamoDBRangeKey

将类属性映射到表的主键的排序键。如果表具有复合主键 (分区键和排序键),您就必须在类映射中同时指定 DynamoDBHashKey 和 DynamoDBRangeKey 属性。

例如,示例表 Reply 的主键由 Id 分区键和 Replenishment 排序键共同构成。以下 C# 代码示例将 Reply 类映射到 Reply 表。类定义中也会指明有这两个属性映射到主键。

有关示例表的更多信息,请参阅创建表并加载示例数据

Copy
[DynamoDBTable("Reply")] public class Reply { [DynamoDBHashKey] public int ThreadId { get; set; } [DynamoDBRangeKey] public string Replenishment { get; set; } // Additional properties go here. }

DynamoDBTable

确定类映射到的 DynamoDB 中的目标表。例如,以下 C# 代码示例将 Developer 类映射到 DynamoDB 中的 People 表。

Copy
[DynamoDBTable("People")] public class Developer { ...}

此属性可被继承或覆盖。

  • DynamoDBTable 属性可被继承。在上述示例中,如果您添加了一个新类 Lead (继承自 Developer 类),它也可以映射到 People 表。DeveloperLead 数据元都存储在 People 表中。

  • DynamoDBTable 属性也可以被覆盖。在以下 C# 代码示例中,Manager 类继承自 Developer 类,但是明确添加 DynamoDBTable 属性会将此类映射到其他表 (Managers)。

    Copy
    [DynamoDBTable("Managers")] public class Manager extends Developer { ...}

您可以添加可选参数 LowerCamelCaseProperties 请求 DynamoDB 在将数据元保存到表中时将属性名称的第一个字母变成小写 (如以下 C# 代码段所示)。

Copy
[DynamoDBTable("People", LowerCamelCaseProperties=true)] public class Developer { string DeveloperName; ...}

保存 Developer 类的实例时,DynamoDBContext 会将 DeveloperName 属性保存为 developerName。

DynamoDBVersion

确定类属性以便存储项目版本号。有关版本控制的更多信息,请参阅乐观锁 (使用版本号) 与 DynamoDB (使用适用于 .NET 的 AWS 开发工具包对象持久性模型) 配合使用