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# 语句中,DynamoDBProperty映射BookAuthors属性设置为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类添加到PeopleDynamoDB。

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

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

  • 这些区域有:DynamoDBTable属性。在前面的示例中,如果添加新类,Lead,它继承自Developer类,它还映射到People表。Bethod (两种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

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