.NET 对象持久化模型中的 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
将类属性映射到本地二级索引的排序键。如果您需要对本地二级索引执行 Query 操作,并想使用索引排序键细化结果,请使用此属性。
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 表。类定义还指示其两个属性映射到主键。
[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表。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 的 Amazon SDK 对象持久化模型结合使用的乐观锁。