DynamoDB 屬性 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DynamoDB 屬性

本節說明物件持久性模型所提供的屬性,讓您可以將類別和屬性映射至 DynamoDB 資料表和屬性。

注意

在下列屬性中,只有 DynamoDBTableDynamoDBHashKey 是必要屬性。

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

將類別屬性映射至資料表主索引鍵的排序索引鍵。如果資料表具有複合主索引鍵 (分割區索引鍵和排序索引鍵),則必須在類別映射中同時指定 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

動態版本

標識用於儲存項目版本編號的類別屬性。如需版本控制的詳細資訊,請參閱「使用 DynamoDB 的版本號碼使用 AWS SDK for .NET 物件持續性模型進行最佳鎖定」。