Verwenden des Object Persistence-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 Object Persistence-Modells

Das AWS Mobile SDK for .NET and Xamarin bietet ein Object Persistence-Modell, mit dem Sie Ihre clientseitigen Klassen einer DynamoDB -Tabelle zuordnen können. Jede Objekt-Instance wird dann einem Element in der entsprechenden Tabelle zugeordnet. Um Ihre clientseitigen Objekte in einer Tabelle zu speichern, stellt das Object Persistence-Modell die DynamoDBContext Klasse bereit, einen Eintrittspunkt für DynamoDB. Diese Klasse bietet Ihnen eine Verbindung zu DynamoDB und ermöglicht Ihnen den Zugriff auf Tabellen, die Ausführung verschiedener CRUD-Operationen und die Ausführung von Abfragen.

Das Object Persistence-Modell stellt keine API zum Erstellen, Aktualisieren und Löschen von Tabellen bereit. Es stellt ausschließlich Datenoperationen bereit. 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 .

Overview

Das Object Persistence-Modell stellt eine Reihe von Attributen bereit, mit deren Hilfe Client-seitige Klassen Tabellen und Eigenschaften/Felder Tabellenattributen zugeordnet werden können. Das Object Persistence-Modell unterstützt die explizite und die Standardzuordnung zwischen Klasseneigenschaften und Tabellenattributen.

  • Explizite Zuweisung: Um eine Eigenschaft einem Primärschlüssel zuzuweisen, müssen Sie die Attribute DynamoDBHashKey und DynamoDBRangeKey Object Persistence-Modell verwenden. Außerdem gilt für Nicht-Primärschlüsselattribute, dass Sie die Zuweisung definieren müssen, indem Sie explizit das Attribut DynamoDBProperty hinzufügen, wenn der Name der Eigenschaft in Ihrer Klasse und das entsprechende Tabellenattribut, dem Sie ihn zuordnen möchten, nicht identisch sind.

  • Standardzuordnung: Standardmäßig ordnet das Object Persistence-Modell die Klasseneigenschaften Attributen mit identischem Namen in der Tabelle zu.

Sie müssen nicht jede Klasseneigenschaft zuordnen. Sie erkennen diese Eigenschaften, indem Sie das DynamoDBIgnore-Attribut hinzufügen. Beim Speichern und Abrufen einer Instance eines Objekts werden mit diesem Attribut markierte Eigenschaften ausgelassen.

Unterstützte Datentypen

Das Object Persistence-Modell unterstützt eine Reihe primitiver .NET-Datentypen, Sammlungen sowie beliebige Datentypen. Das Modell unterstützt die folgenden primitiven Datentypen.

  • bool

  •  Byte

  • char

  • DateTime

  • decimal, double, float

  • Int16, Int32, Int64

  • SByte

  • string

  • UInt16, UInt32, UInt64

Das Object Persistence-Modell unterstützt außerdem die .NET-Sammlungstypen. Dabei gelten folgende Einschränkungen:

  • Der Sammlungstyp muss eine ICollection Schnittstelle implementieren.

  • Der Sammlungstyp muss aus unterstützten primitiven Datentypen gebildet werden. Beispiel: ICollection <string>, ICollection <bool>.

  • Der Sammlungstyp muss einen parameterlosen Konstruktor bereitstellen.

Weitere Informationen zum Object Persistence-Modell erhalten Sie unter .NET Object Persistence-Modell.

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 Objekts

Erstellen eines Objekts:

[DynamoDBTable("Books")] public class Book { [DynamoDBHashKey] // Hash key. public string Id { get; set; } [DynamoDBGlobalSecondaryIndexHashKey] public string Author { get; set; } [DynamoDBGlobalSecondaryIndexRangeKey] public string Title { get; set; } public string ISBN { get; set; } public int Price { get; set; } public string PageCount { get; set; } } Book myBook = new Book { Id = id, Author = "Charles Dickens", Title = "Oliver Twist", ISBN = "111-1111111001", Price = 10, PageCount = 300 };

Speichern eines Objekts in einer DynamoDB Tabelle:

context.Save(myBook);

Abrufen eines Objekts

Rufen Sie ein Objekt wie folgt ab:

Book retrievedBook = context.Load<Book>(1);

Aktualisieren eines Objekts

Aktualisieren Sie ein Objekt wie folgt:

Book retrievedBook = context.Load<Book>(1); retrievedBook.ISBN = "111-1111111001"; context.Save(retrievedBook);

Objekte löschen

So löschen Sie ein Objekt:

Book retrievedBook = context.Load<Book>(1); context.Delete(retrievedBook);

Query und Scan

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

public async Task QueryAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); DynamoDBContext context = new DynamoDBContext(client); var search = context.FromQueryAsync < Book > (new Amazon.DynamoDBv2.DocumentModel.QueryOperationConfig() { IndexName = "Author-Title-index", Filter = new Amazon.DynamoDBv2.DocumentModel.QueryFilter("Author", Amazon.DynamoDBv2.DocumentModel.QueryOperator.Equal, "Charles Dickens") }); Console.WriteLine("items retrieved"); var searchResponse = await search.GetRemainingAsync(); searchResponse.ForEach((s) = > { Console.WriteLine(s.ToString()); }); }

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); DynamoDBContext context = new DynamoDBContext(client); var search = context.FromScanAsync < Book > (new Amazon.DynamoDBv2.DocumentModel.ScanOperationConfig() { ConsistentRead = true }); Console.WriteLine("items retrieved"); var searchResponse = await search.GetRemainingAsync(); searchResponse.ForEach((s) = > { Console.WriteLine(s.ToString()); }); }