DynamoDB 属性 - Amazon DynamoDB
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 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 的排序键。如果您需要对Query执行 local secondary index操作,并希望使用索引排序键优化结果,请使用此属性。

DynamoDBProperty

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

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

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

DynamoDBRenamable

指定类属性的替代名称。如果您正在编写自定义转换器,用于将任意数据映射到类属性名称与表属性不同的 DynamoDB 表,这是非常有用的。

DynamoDBRangeKey

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

例如,示例表 Reply 的主键由 Id 分区键和 Replenishment 排序键组成。以下 C# 代码示例将 Reply 类映射到 Reply 表。类定义还指示它的两个属性映射到主键。

有关示例表的更多信息,请参阅为 DynamoDB 中的代码示例创建表和加载数据

[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 类映射到 People 中的 DynamoDB 表。

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

可以继承或覆盖该属性。

  • 可以继承 DynamoDBTable 属性。在上述示例中,如果您添加从 Lead 类继承的新类 Developer,则它还会映射到 People 表。和 Developer 对象均存储在 Lead 表中。People

  • 也可以覆盖 DynamoDBTable 属性。在以下 C# 代码示例中,Manager 类继承自 Developer 类。但是,显式添加 DynamoDBTable 属性会将该类映射到另一个表 (Managers)。

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

您可以添加可选参数 LowerCamelCaseProperties,以请求 DynamoDB 在将对象存储到表中时将属性名称的首字母设置为小写,如以下 C# 示例所示。

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

在保存 Developer 类的实例时,DynamoDBContextDeveloperName 属性保存为 developerName

DynamoDBVersion

标识用于存储项目版本号的类属性。有关版本控制的更多信息,请参阅通过 DynamoDB 使用 适用于 .NET 的 AWS 开发工具包 对象持久化模型对版本号乐观锁