DynamoDB 属性 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

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

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 类映射到 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

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