Uso del modello di documento - AWS Mobile SDK

L'SDKAWS Mobile per Xamarin è ora incluso inAWS SDK for .NET. Questa guida fa riferimento alla versione archiviata di Mobile SDK per Xamarin.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Uso del modello di documento

Il modello Document fornisce classi wrapper attorno all'API .NET di basso livello. La tabella e il documento sono le classi chiave del wrapper. È possibile utilizzare il modello di documento per creare, recuperare, aggiornare ed eliminare gli elementi. Per creare, aggiornare ed eliminare le tabelle, è necessario utilizzare l'API di basso livello. Per istruzioni su come utilizzare l'API di basso livello, consultaUtilizzo delle API di livello di servizio DynamoDB. L'API di basso livello è disponibile su Amazon.dynamoDB.DocumentModelspazio dei nomi.

Per ulteriori informazioni sul modello di documento, consultaModello di documento .NET.

Creazione di un client DynamoDB

Per creare un client DynamoDB:

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

Operazioni CRUD

Salvataggio di una voce

Creazione di una voce:

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";

Salva una voce in una tabella DynamoDB:

var book = await table.PutItemAsync(books);

Recupero di una voce

Per recuperare un articolo:

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); }

Aggiornamento di una voce

Per aggiornare una voce:

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); }

Per aggiornare una voce in modo condizionale:

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); }

Eliminazione di una voce

Per eliminare una voce:

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

Esegui query e scansioni

Per interrogare e recuperare tutti i libri il cui autore è «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); }); }

Il codice di esempio di scansione riportato di seguito restituisce tutti i libri nella nostra tabella:

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); }); }