本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
DynamoDB 属性
本节介绍对象持久化模型提供的属性,以便您可以将类和属性映射到 DynamoDB 表和属性。
在以下属性中,只有 DynamoDBTable
和 DynamoDBHashKey
是必需的。
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# 语句中,DynamoDBProperty
将 BookAuthors
属性映射到表中的 Authors
属性。
[DynamoDBProperty("Authors")] public List<string> BookAuthors { get; set; }
DynamoDBContext
在将对象数据保存到相应的表时使用此映射信息创建 Authors
属性。
DynamoDBRenamable
指定类属性的替代名称。如果您正在编写自定义转换器,用于将任意数据映射到类属性名称与表属性不同的 DynamoDB 表,这是非常有用的。
DynamoDBRangeKey
将类属性映射到表的主键的排序键。如果表具有复合主键(分区键和排序键),则必须在类映射中同时指定 DynamoDBHashKey
和 DynamoDBRangeKey
属性。
例如,示例表 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
类的实例时,DynamoDBContext
将 DeveloperName
属性保存为 developerName
。
DynamoDBVersion
标识用于存储项目版本号的类属性。有关版本控制的更多信息,请参阅通过 DynamoDB 使用 适用于 .NET 的 AWS 开发工具包 对象持久化模型对版本号乐观锁。