Utilisation du modèle de document - Kit SDK AWS Mobile

Le SDKAWS mobile pour Xamarin est désormais inclus dans leAWS SDK for .NET. Ce guide fait référence à la version archivée du SDK mobile pour Xamarin.

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.

Utilisation du modèle de document

Le modèle de document fournit des classes d'enveloppe autour de l'API .NET de bas niveau. Table et Document sont les classes d'enveloppe principales. Vous pouvez utiliser le modèle de document pour créer, récupérer, mettre à jour et supprimer des éléments. Pour créer, mettre à jour et supprimer des tables, vous devez utiliser l'API de bas niveau. Pour accéder aux instructions sur l'utilisation de l'API de bas niveau, consultez Utilisation des API de niveau de service DynamoDB. L'API de bas niveau est disponible dans Amazon.DynamoDB.DocumentModelnamespace.

Pour en savoir plus sur le modèle de document, consultez Modèle de document .NET.

Créer un client DynamoDB

Pour créer un client DynamoDB :

var client = new AmazonDynamoDBClient(credentials,region); DynamoDBContext context = new DynamoDBContext(client);

Opérations CRUD

Enregistrer un élément

Créer un élément :

Table table = Table.LoadTable(client, "Books"); id = Guid.NewGuid().ToString(); var books = new Document(); books["Id"] = id; books["Author"] = "Mark Twain"; books["Title"] = "Adventures of Huckleberry Finn"; books["ISBN"] = "112-111111"; books["Price"] = "10";

Enregistrer un élément dans une table DynamoDB :

var book = await table.PutItemAsync(books);

Récupérer un élément

Pour récupérer un élément :

public async Task GetItemAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); var book = await books.GetItemAsync(id); }

Mettre à jour un élément

Pour mettre à jour un élément :

public async Task UpdateItemAttributesAsync(AWSCredentials credentials, RegionEndpoint region) { var book = new Document(); book["Id"] = id; book["PageCount"] = "200"; var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); Document updatedBook = await books.UpdateItemAsync(book); }

Pour mettre à jour un élément sous certaines conditions :

public async Task UpdateItemConditionallyAsync(AWSCredentials credentials, RegionEndpoint region) { var book = new Document(); book["Id"] = id; book["Price"] = "30"; // For conditional price update, creating a condition expression. Expression expr = new Expression(); expr.ExpressionStatement = "Price = :val"; expr.ExpressionAttributeValues[":val"] = 10.00; var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); Document updatedBook = await books.UpdateItemAsync(book); }

Supprimer un élément

Pour supprimer un élément :

public async Task DeleteItemAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); await books.DeleteItemAsync(id); }

Query and Scan

Pour interroger et récupérer tous les livres dont l'auteur est « Mark Twain » :

public async Task QueryAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); var search = books.Query(new QueryOperationConfig() { IndexName = "Author-Title-index", Filter = new QueryFilter("Author", QueryOperator.Equal, "Mark Twain") }); Console.WriteLine("ScanAsync: printing query response"); var documents = await search.GetRemainingAsync(); documents.ForEach((d) = > { PrintDocument(d); }); }

L'exemple de code d'analyse ci-dessous retourne tous les livres de notre table :

public async Task ScanAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); var search = books.Scan(new ScanOperationConfig() { ConsistentRead = true }); Console.WriteLine("ScanAsync: printing scan response"); var documents = await search.GetRemainingAsync(); documents.ForEach((d) = > { PrintDocument(d); }); }