Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

DynamoDB 属性

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

注意

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

DynamoDBGlobalSecondaryIndexHashKey

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

DynamoDBGlobalSecondaryIndexRangeKey

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

DynamoDBHashKey

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

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

[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 属性。

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

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

DynamoDBRenamable

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

DynamoDBRangeKey

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

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

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

[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 表。

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

此属性可被继承或覆盖。

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

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

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

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

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

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

DynamoDBVersion

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