Das AWS Mobile SDK für Xamarin ist jetzt in der enthalten. AWS SDK für .NET Dieses Handbuch bezieht sich auf die archivierte Version des Mobile SDK für Xamarin.
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 Model, 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, bietet das Object Persistence Model die DBContext Dynamo-Klasse, einen Einstiegspunkt für DynamoDB. Mit dieser Klasse verfügen Sie über eine Verbindung zu DynamoDB, können auf Tabellen zugreifen und verschiedene CRUD-Operationen sowie Abfragen ausführen.
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-Servicelevels. APIs
-Übersicht
Das Object Persistence Model stellt eine Reihe von Attributen bereit, um clientseitige Klassen Tabellen und Tabellenattributen zuzuordnen. properties/fields Das Object Persistence-Modell unterstützt die explizite und die Standardzuordnung zwischen Klasseneigenschaften und Tabellenattributen.
-
Explizite Zuordnung: Um eine Eigenschaft einem Primärschlüssel zuzuordnen, müssen Sie die Modellattribute Dynamo DBHash Key und Dynamo DBRange Key Object Persistence verwenden. Wenn bei den Nicht-Primärschlüsselattributen ein Eigenschaftsname in Ihrer Klasse und das entsprechende Tabellenattribut, dem Sie ihn zuordnen möchten, nicht identisch sind, müssen Sie außerdem die Zuordnung definieren, indem Sie das Dynamo-Attribut explizit hinzufügen. DBProperty
-
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 identifizieren diese Eigenschaften, indem Sie das DBIgnore Dynamo-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
-
Zeichenfolge
-
UInt16, UInt32, UInt64
Das Object Persistence-Modell unterstützt außerdem die .NET-Sammlungstypen. Dabei gelten folgende Einschränkungen:
-
Der Sammlungstyp muss die ICollection Schnittstelle implementieren.
-
Der Sammlungstyp muss aus unterstützten primitiven Datentypen gebildet werden. Zum 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
Erstellen Sie einen DynamoDB-Client wie folgt:
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()); }); }