

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

# 在 DynamoDB 中使用 .NET 文件模型
<a name="DotNetSDKMidLevel"></a>

適用於 .NET 的 AWS SDK 提供文件模型類別，包裝一部分低階 Amazon DynamoDB 操作，可進一步簡化您的程式碼編寫。在文件模型中，主類別為 `Table` 和 `Document`。`Table` 類別提供資料操作方法，例如 `PutItem`、`GetItem` 和 `DeleteItem`。該類別也提供 `Query` 和 `Scan` 方法。`Document` 類別則代表資料表中的單一項目。

上述文件模型類別可在 `Amazon.DynamoDBv2.DocumentModel` 命名空間中取得。

**注意**  
您無法使用文件模型建立、更新和刪除資料表。但文件模型支援大部分的常見資料操作。

**Topics**
+ [支援的資料類型](#MidLevelAPILimitations.SupportedTypes)

## 支援的資料類型
<a name="MidLevelAPILimitations.SupportedTypes"></a>

文件模型會支援一組原始的 .NET 資料類型和集合資料類型。模型目前支援下列基本資料類型。
+ `bool`
+ `byte` 
+ `char`
+ `DateTime`
+ `decimal`
+ `double`
+ `float`
+ `Guid`
+ `Int16`
+ `Int32`
+ `Int64`
+ `SByte`
+ `string`
+ `UInt16`
+ `UInt32`
+ `UInt64`

下表摘要說明上述 .NET 類型與 DynamoDB 類型的映射。


****  

| .NET 基本類型 | DynamoDB 類型 | 
| --- | --- | 
|  所有數字類型  |  `N` (數字類型)  | 
|  所有字串類型  |  `S` (字串類型)   | 
|  MemoryStream, byte[]  |  `B` (二進位類型)   | 
| bool | N (數字類型)。0 代表 false，1 代表 true。 | 
| DateTime | S (字串類型)。DateTime 值會以 ISO-8601 格式字串存放。 | 
| Guid | S (字串類型)。 | 
| 集合類型 (List、HashSet 和陣列) | BS (二進位集) 類型、SS (字串集) 類型和 NS (數字集) 類型。 | 

適用於 .NET 的 AWS SDK 會定義將 DynamoDB 的布林值、null 值、清單和映射類型映射到 .NET 文件模型 API 的類型：
+ 使用 `DynamoDBBool` 作為布林類型。
+ 使用 `DynamoDBNull` 作為 null 類型。
+ 使用 `DynamoDBList` 作為清單類型。
+ 使用 `Document` 作為映射類型。

**注意**  
支援空白的二進位值。
支援讀取空白字串值。寫入 DynamoDB 時，字串 Set 類型的屬性值會支援空白字串的屬性值。List 或 Map 類型中包含的字串類型的空白字串屬性值和空白字串值會從寫入請求中捨棄