

# DynamoDB での .NET ドキュメントの操作
<a name="DotNetSDKMidLevel"></a>

AWS SDK for .NET では、低レベル 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（数値セット）型 | 

AWS SDK for .NET は、DynamoDB のブール型、null 型、リスト型、およびマップ型を .NET ドキュメントモデル API にマッピングするための型を定義します。
+ ブール型には `DynamoDBBool` 使用します。
+ null 型には `DynamoDBNull` を使用します。
+ リスト型には `DynamoDBList` を使用します。
+ マップ型には `Document` を使用します。

**注記**  
空のバイナリ値がサポートされています。
空の文字列値の読み取りがサポートされています。空の文字列属性値は、DynamoDB への書き込み中に、文字列セット型の属性値内でサポートされます。文字列型の空の文字列属性値と、リスト型またはマップ型に含まれる空の文字列値が書き込みリクエストから削除されます。