Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
.NET : modèle de persistance des objets
Rubriques
- Attributs DynamoDB
- Classe DynamoDBContext
- Types de données pris en charge
- Verrouillage optimiste à l'aide d'un numéro de version avec DynamoDB utilisant AWS SDK for .NET le modèle de persistance des objets
- Mappage de données arbitraires avec DynamoDB à l'aide AWS SDK for .NET du modèle de persistance des objets
- Opérations par lot utilisant le modèle de persistance des objets AWS SDK for .NET
- Exemple : opérations CRUD utilisant le modèle de persistance des objets AWS SDK for .NET
- Exemple : opération d'écriture par lots utilisant le modèle de persistance de AWS SDK for .NET l'objet
- Exemple : interroger et analyser dans DynamoDB à l'aide du modèle de persistance des objets AWS SDK for .NET
AWS SDK for .NET fournit un modèle de persistance des objets qui vous permet de mapper vos classes côté client aux tables Amazon DynamoDB. Ensuite, chaque instance d'objet est mappée à un élément des tables correspondantes. Pour enregistrer vos objets côté client dans les tables, le modèle de persistance des objets fournit la classe DynamoDBContext
, un point d'entrée dans DynamoDB. Cette classe fournit une connexion à DynamoDB, et vous permet d'accéder aux tables, d'effectuer diverses opérations CRUD ainsi que d'exécuter des requêtes.
Le modèle de persistance des objets fournit un ensemble d'attributs pour mapper des classes côté client à des tables, et des propriétés/champs à des attributs de table.
Note
Le modèle de persistance des objets n'autorise pas une API à créer, mettre à jour ou supprimer des tables. Il fournit uniquement des opérations sur les données. Vous ne pouvez utiliser que l'API de AWS SDK for .NET bas niveau pour créer, mettre à jour et supprimer des tables. Pour plus d’informations, consultez Utilisation des tables DynamoDB dans .NET.
L'exemple suivant montre le fonctionnement du modèle de persistance des objets. Il commence par la table ProductCatalog
. Sa clé primaire est Id
.
ProductCatalog(Id, ...)
Supposons que vous avec une classe Book
avec les propriétés Title
, ISBN
et Authors
. Vous pouvez mapper la classe Book
à la table ProductCatalog
en ajoutant les attributs définis par le modèle de persistance des objets, comme illustré dans l'exemple de code C# suivant.
Exemple
[DynamoDBTable("ProductCatalog")] public class Book { [DynamoDBHashKey] public int Id { get; set; } public string Title { get; set; } public int ISBN { get; set; } [DynamoDBProperty("Authors")] public List<string> BookAuthors { get; set; } [DynamoDBIgnore] public string CoverPage { get; set; } }
Dans l'exemple précédent, l'attribut DynamoDBTable
mappe la classe Book
à la table ProductCatalog
.
Le modèle de persistance des objets prend en charge les mappages explicite et par défaut entre les propriétés de classe et les attributs de table.
-
Mappage explicite – Pour mapper une propriété à une clé primaire, vous devez utiliser les attributs de modèle de persistance des objets
DynamoDBHashKey
etDynamoDBRangeKey
. En outre, pour les attributs de clé non primaire, si un nom de propriété de votre classe et l'attribut de table correspondant auquel vous voulez le mapper ne sont pas identiques, vous devez définir le mappage en ajoutant explicitement l'attributDynamoDBProperty
.Dans l'exemple précédent, la propriété
Id
mappe à la clé primaire du même nom, et la propriétéBookAuthors
mappe à l'attributAuthors
dans la tableProductCatalog
. -
Mappage par défaut – Par défaut, le modèle de persistance des objets mappe les propriétés de classe aux attributs du même nom dans la table.
Dans l'exemple précédent, les propriétés
Title
etISBN
mappent aux attributs du même nom dans la tableProductCatalog
.
Vous n'avez pas à mapper chaque propriété de classe. Vous identifiez ces propriétés en ajoutant l'attribut DynamoDBIgnore
. Lorsque vous enregistrez une instance Book
dans la table, le DynamoDBContext
n'inclut pas la propriété CoverPage
. Il ne renvoie pas non plus cette propriété lorsque vous récupérez l'instance livre.
Vous pouvez mapper des propriétés de types primitifs .NET tels que int et string. Vous pouvez également mapper n'importe quels types de données arbitraires tant que vous fournissez un convertisseur approprié pour mapper les données arbitraires à l'un des types DynamoDB. Pour en savoir plus sur le mappage de types arbitraires, consultez Mappage de données arbitraires avec DynamoDB à l'aide AWS SDK for .NET du modèle de persistance des objets.
Le modèle de persistance des objets prend en charge le verrouillage optimiste. Au cours d'une opération de mise à jour, cela garantit que vous disposez de la dernière copie de l'élément que vous êtes sur le point de mettre à jour. Pour plus d’informations, consultez Verrouillage optimiste à l'aide d'un numéro de version avec DynamoDB utilisant AWS SDK for .NET le modèle de persistance des objets.
Types de données pris en charge
Le modèle de persistance des objets prend en charge un ensemble de types de données .NET primitifs, de collections et de types de données arbitraires. Le modèle prend en charge les types de données primitifs suivants.
-
bool
-
byte
-
char
-
DateTime
-
decimal
-
double
-
float
-
Int16
-
Int32
-
Int64
-
SByte
-
string
-
UInt16
-
UInt32
-
UInt64
Le modèle de persistance des objets prend également en charge les types de collections .NET. DynamoDBContext
est capable de convertir des types de collections concrets et des POCOS (Plain Old CLR Objects) simples.
Le tableau suivant récapitule le mappage des types .NET précédents aux types DynamoDB.
Type primitif .NET | Type DynamoDB |
---|---|
Tous les types de numéro |
|
Tous types de chaînes |
|
MemoryStream, octet [] |
|
bool | N (type de nombre). 0 représente false et 1 représente true. |
Types de collections | Type BS (ensemble de binaires), type SS (ensemble de chaînes) ou type NS (ensemble de nombres). |
DateTime | S (type String). Les valeurs DateTime sont stockées comme chaînes de format ISO-8601. |
Le modèle de persistance des objets prend également en charge les types de données arbitraires. Toutefois, vous devez fournir un code de convertisseur pour mapper les types complexes aux types DynamoDB.
Note
-
Les valeurs binaires vides sont prises en charge.
-
La lecture des valeurs de chaîne vides est prise en charge. Les valeurs d'attribut de chaîne vides sont prises en charge dans les valeurs d'attribut de type de chaîne Set lors de l'écriture dans DynamoDB. Les valeurs d'attribut de chaîne vides de type String et les valeurs de chaîne vides contenues dans le type List ou Map sont supprimées des demandes d'écriture.