Verwenden des Document-Modells - AWS SDK für Mobilgeräte

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden des Document-Modells

Das Dokumentmodell stellt Wrapper-Klassen für die .NET-Low-Level-API bereit. Die wichtigsten Wrapper-Klassen sind Table und Document. Sie können das Dokumentmodell verwenden, um Elemente zu erstellen, abzurufen, zu aktualisieren und zu löschen. Zum Erstellen, Aktualisieren und Löschen von Tabellen müssen Sie die Low-Level-API verwenden. Anweisungen zur Verwendung der Low-Level-API finden Sie unter Verwenden des DynamoDB Service APIsLevels . Die Low-Level-API ist im Namespace DynamoDB.DocumentModel verfügbar.

Weitere Informationen zum Dokumentmodell erhalten Sie unter .NET: Dokumentmodell.

Erstellen eines DynamoDB Clients

So erstellen Sie einen DynamoDB Client:

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

CRUD-Operationen

Speichern eines Elements

Erstellen Sie ein Element wie folgt:

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

Speichern eines Elements in einer DynamoDB Tabelle:

var book = await table.PutItemAsync(books);

Abrufen eines Elements

Rufen Sie ein Element wie folgt ab:

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

Aktualisieren eines Elements

Aktualisieren Sie ein Element wie folgt:

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

Aktualisieren Sie ein Element wie folgt bedingungsabhängig:

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

Löschen eines Elements

So löschen Sie einen Artikel:

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 und Scan

Gehen Sie zum Abfragen und Abrufen aller Bücher, deren Autor „Mark Twain“ ist, wie folgt vor:

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

Der Scan-Beispiel-Code unten gibt alle Bücher in der Tabelle zurück:

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