

# 在 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`（二进制类型）   | 
| 布尔 | N（数字类型）。0 表示 false，1 表示 true。 | 
| DateTime | S（字符串类型）。DateTime 值存储为符合 ISO-8601 格式的字符串。 | 
| Guid | S（字符串类型）。 | 
| 集合类型（列表、哈希集和数组） | BS（二进制集）类型、SS（字符串集）类型或 NS（数字集）类型。 | 

适用于 .NET 的 AWS SDK 定义了用于将 DynamoDB 的布尔值、null、列表和映射类型映射到 .NET 文档模型 API 的类型：
+ 将 `DynamoDBBool` 用于布尔值类型。
+ 将 `DynamoDBNull`用于 null 类型。
+ 将 `DynamoDBList` 用于列表类型。
+ 将 `Document` 用于映射类型。

**注意**  
支持空二进制值。
支持读取空字符串值。写入 DynamoDB 时，字符串集类型的属性值中支持空字符串属性值。从写入请求中删除列表或映射类型中包含的字符串类型的空字符串属性值和空字符串值