DynamoDB 属性 - Amazon DynamoDB

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DynamoDB 属性

本节介绍了对象持久化模型提供的属性,以便您可以将类和属性映射到 DynamoDB 表和属性。

注意

在以下属性中,仅 DynamoDBTableDynamoDBHashKey 是必需的。

DynamoDB GlobalSecondaryIndexHashKey

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

DynamoDB GlobalSecondaryIndexRangeKey

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

DynamoDB HashKey

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

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

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

DynamoDBIgnore

指示应忽略关联属性。如果您不想保存任何类属性,可以添加此属性来指示 DynamoDBContext 将对象保存到表格时不包含此属性。

DynamoDB LocalSecondaryIndexRangeKey

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

DynamoDBProperty

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

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

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

DynamoDBRenamable

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

DynamoDB RangeKey

将类属性映射到表主键的排序键。如果表具有复合主键(分区键和排序键),您必须同时指定类映射的 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 类映射到 DynamoDB 的 People 表。

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

此属性可以被继承或覆盖。

  • DynamoDBTable 属性可被继承。在上述示例中,如果添加继承自 Developer 类的新类 Lead,则还映射到 People 表。DeveloperLead 对象存储在 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 类实例时,DynamoDBContext 保存 DeveloperName 属性作为 developerName

DynamoDBVersion

标识用于存储项目版本号的类属性。有关版本控制的更多信息,请参阅将使用版本号的乐观锁与使用 AWS SDK for .NET 对象持久化模型的 DynamoDB 结合使用