

# Uso del modelo de documento de .NET en DynamoDB
<a name="DotNetSDKMidLevel"></a>

El AWS SDK para .NET proporciona clases de modelo de documento que encapsulan algunas de las operaciones de bajo nivel de Amazon DynamoDB y así le ayudan a simplificar la codificación. En el modelo de documento, las clases principales son `Table` y `Document`. La clase `Table` proporciona métodos de operaciones de datos, como `PutItem`, `GetItem` y `DeleteItem`. Además, proporciona los métodos `Query` y `Scan`. La clase `Document` representa un solo elemento de una tabla.

Las clases del modelo de documento citadas están disponibles en el espacio de nombres `Amazon.DynamoDBv2.DocumentModel`.

**nota**  
Las clases del modelo de documento no se pueden usar para crear, actualizar ni eliminar tablas. Sin embargo, el modelo de documento admite la mayoría de las operaciones de datos habituales.

**Topics**
+ [Tipos de datos compatibles](#MidLevelAPILimitations.SupportedTypes)

## Tipos de datos compatibles
<a name="MidLevelAPILimitations.SupportedTypes"></a>

El modelo de documento admite un conjunto de tipos de datos de .NET primitivos y tipos de datos de colecciones. El modelo admite los siguientes tipos de datos primitivos. 
+ `bool`
+ `byte` 
+ `char`
+ `DateTime`
+ `decimal`
+ `double`
+ `float`
+ `Guid`
+ `Int16`
+ `Int32`
+ `Int64`
+ `SByte`
+ `string`
+ `UInt16`
+ `UInt32`
+ `UInt64`

En la tabla siguiente se resume el mapeo de los tipos de .NET anteriores a los tipos de DynamoDB.


****  

| Tipo de .NET primitivo | Tipo DynamoDB | 
| --- | --- | 
|  Todos los tipos de números  |  `N` (tipo Number)  | 
|  Todos los tipos de cadenas  |  `S` (tipo String)   | 
|  MemoryStream, byte[]  |  `B` (tipo Binary)   | 
| bool | N (tipo Number), 0 representa false (falso) y 1 representa true (verdadero). | 
| DateTime | S (tipo String). Los valores DateTime se almacenan como cadenas con formato ISO-8601. | 
| Guid | S (tipo String). | 
| Tipos de recopilación (List, HashSet y array) | BS (tipo Binary Set), SS (tipo String Set) y NS (tipo Number Set) | 

AWS SDK para .NET define tipos para establecer una correspondencia entre tipos booleanos, nulos, listas y mapas de DynamoDB y la API de modelo de documento de .NET:
+ Utilice `DynamoDBBool` para tipo booleano.
+ Utilice `DynamoDBNull` para tipo nulo.
+ Utilice `DynamoDBList` para tipo lista.
+ Utilice `Document` para tipo mapa.

**nota**  
Se admiten valores binarios vacíos.
Se admite la lectura de valores de cadena vacíos. Los valores de atributo de cadena vacíos se admiten dentro de los valores de atributo del tipo de conjunto de cadenas mientras se escribe en DynamoDB. Los valores de atributo de cadena vacíos del tipo de cadena y los valores de cadena vacíos contenidos en el tipo lista o mapa se eliminan de las solicitudes de escritura