本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DynamoDB 屬性
本節說明物件持久性模型所提供的屬性,讓您可以將類別和屬性映射至 DynamoDB 資料表和屬性。
注意
在下列屬性中,只有 DynamoDBTable
和 DynamoDBHashKey
是必要屬性。
DynamoDB GlobalSecondary IndexHash
將類別屬性映射至全域次要索引的分割區索引鍵。如果您需要對全域次要索引進行 Query
,請使用此屬性。
DynamoDB GlobalSecondary IndexRange
將類別屬性映射至全域次要索引的排序索引鍵。如果您需要對全域次要索引進行 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 LocalSecondary IndexRange
將類別屬性映射至本機次要索引的排序索引鍵。如果您需要對本機次要索引進行 Query
,並且想要使用索引的排序索引鍵來縮小您結果的範圍,請使用此屬性。
DynamoDBProperty
將類別屬性映射至資料表屬性。如果類別屬性映射至具有相同名稱的資料表屬性,則不需要指定此屬性。不過,如果名稱不同,您可以使用此標籤提供映射。在下列 C# 陳述式中,DynamoDBProperty
會將 BookAuthors
屬性映射至資料表中的 Authors
屬性。
[DynamoDBProperty("Authors")] public List<string> BookAuthors { get; set; }
當儲存物件資料至相應的資料表時,DynamoDBContext
會使用此映射資訊來建立 Authors
屬性。
可重命名動態
指定類別屬性的替代名稱。如果您正在撰寫自訂轉換器,以將任意資料映射至 DynamoDB 資料表 (其中類別屬性的名稱與資料表屬性不同),則此功能非常有用。
DynamoDB RangeKey
將類別屬性映射至資料表主索引鍵的排序索引鍵。如果資料表具有複合主索引鍵 (分割區索引鍵和排序索引鍵),則必須在類別映射中同時指定 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
類別映射至 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
。
動態版本
標識用於儲存項目版本編號的類別屬性。如需版本控制的詳細資訊,請參閱「使用 DynamoDB 的版本號碼使用 AWS SDK for .NET 物件持續性模型進行最佳鎖定」。