Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

ynamoDBContext D-Klasse aus dem. NETModell der Objektpersistenz

Fokusmodus
ynamoDBContext D-Klasse aus dem. NETModell der Objektpersistenz - Amazon-DynamoDB

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.

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.

Die DynamoDBContext-Klasse ist der Eintrittspunkt zu der Amazon-DynamoDB-Datenbank. Es stellt eine Verbindung zu DynamoDB her und ermöglicht es Ihnen, auf Ihre Daten in verschiedenen Tabellen zuzugreifen, verschiedene CRUD Operationen durchzuführen und Abfragen auszuführen. Die Klasse DynamoDBContext-stellt folgende Methoden bereit.

Erstellen MultiTable BatchGet

Erstellt ein MultiTableBatchGet-Objekt, das aus verschiedenen einzelnen BatchGet-Objekten besteht. Jedes dieser BatchGet-Objekte kann verwendet werden, um Elemente aus einer einzelnen DynamoDB-Tabelle abzurufen.

Um die Elemente aus Tabellen abzurufen, verwenden Sie die Methode ExecuteBatchGet, indem Sie das MultiTableBatchGet-Objekt als Parameter übergeben.

Erstellen MultiTable BatchWrite

Erstellt ein MultiTableBatchWrite-Objekt, das aus verschiedenen einzelnen BatchWrite-Objekten besteht. Jedes dieser BatchWrite-Objekte kann für das Schreiben und das Löschen von Elementen in einer einzelnen DynamoDB-Tabelle verwendet werden.

Um zu Tabellen zu schreiben, verwenden Sie die Methode ExecuteBatchWrite, indem Sie das MultiTableBatchWrite-Objekt als Parameter übergeben.

CreateBatchGet

Erstellt ein BatchGet-Objekt, welches für das Abrufen mehrerer Elemente aus einer Tabelle verwenden werden kann.

CreateBatchWrite

Erstellt ein BatchWrite-Objekt, das Sie zum Ablegen mehrerer Elemente in einer Tabelle oder zum Löschen mehrerer Elemente aus einer Tabelle verwenden können.

Löschen

Löscht ein Element aus der Tabelle. Die Methode erfordert den Primärschlüssel des Elements, das Sie löschen möchten. Sie können entweder den Primärschlüsselwert oder ein clientseitiges Objekt bereitstellen, das einen Primärschlüsselwert als Parameter für diese Methode enthält.

  • Wenn Sie ein clientseitiges Objekt als Parameter angeben und die optimistische Sperre aktiviert haben, ist der Löschvorgang nur dann erfolgreich, wenn die clientseitigen und die serverseitigen Versionen des Objekts übereinstimmen.

  • Wenn Sie lediglich den Primärschlüsselwert als Parameter angeben, ist der Löschvorgang erfolgreich, unabhängig davon, ob die optimistische Sperre aktiv ist oder nicht.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die DeleteAsync-Methode.

Dispose

Entsorgt alle verwalteten und nicht verwalteten Ressourcen.

ExecuteBatchGet

Liest Daten aus einer oder mehreren Tabellen und verarbeitet alle BatchGet-Objekte in einem MultiTableBatchGet.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die ExecuteBatchGetAsync-Methode.

ExecuteBatchWrite

Liest oder löscht Daten aus einer oder mehreren Tabellen und verarbeitet alle BatchWrite-Objekte in einem MultiTableBatchWrite.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die ExecuteBatchWriteAsync-Methode.

FromDocument

Angesichts einer Document-Instance, gibt die FromDocument-Methode eine Instance der clientseitigen Klasse zurück.

Dies ist hilfreich, wenn Sie die Dokumentenmodell-Klassen zusammen mit dem Object Persistence-Modell verwenden möchten, um beliebige Datenoperationen durchzuführen. Weitere Hinweise zu den von der bereitgestellten Dokumentmodellklassen finden Sie unterIch arbeite mit dem. NETDokumentmodell in DynamoDB. AWS SDK for .NET

Angenommen, Sie besitzen ein Document-Objekt mit dem Namen doc, das eine Darstellung eines Forum-Elements enthält. (Informationen zum Konstruieren dieses Objekts finden Sie in der Beschreibung der Methode ToDocument weiter unten in diesem Thema.) Sie können FromDocument verwenden, um das Forum-Element aus dem Document abzurufen, wie im folgendem C#-Codebeispiel gezeigt.

Beispiel
forum101 = context.FromDocument<Forum>(101);
Anmerkung

Wenn das Document-Objekt die IEnumerable-Schnittstelle implementiert, können Sie stattdessen die FromDocuments-Methode nutzen. Auf diese Weise können Sie alle Klassen-Instances im Document durchlaufen.

FromQuery

Führt eine Query-Operation mit den Abfrageparametern aus, die in einem QueryOperationConfig-Objekt definiert sind.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die FromQueryAsync-Methode.

FromScan

Führt eine Scan-Operation mit den Scan-Parametern aus, die in einem ScanOperationConfig-Objekt definiert sind.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die FromScanAsync-Methode.

GetTargetTable

Ruft die Zieltabelle für den angegebenen Typ ab. Dies ist nützlich, wenn Sie einen benutzerdefinierten Konverter schreiben, der einer DynamoDB-Tabelle beliebige Daten zuordnet, und ermitteln müssen, welche Tabelle einem benutzerdefinierten Datentyp zugeordnet ist.

Load

Ruft ein Element aus einer Tabelle ab. Die Methode erfordert lediglich den Primärschlüssel des Elements, das Sie abrufen möchten.

Standardmäßig gibt DynamoDB das Element mit Werten die Eventually Consistent sind zurück. Weitere Informationen zum Eventual Consistency-Modell finden Sie unter DynamoDB-Lesekonsistenz.

Loadoder LoadAsync Methode ruft den GetItemVorgang auf, bei dem Sie den Primärschlüssel für die Tabelle angeben müssen. Da der IndexName Parameter GetItem ignoriert wird, können Sie ein Element nicht mithilfe der Partition oder des Sortierschlüssels eines Indexes laden. Daher müssen Sie den Primärschlüssel der Tabelle verwenden, um ein Element zu laden.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die LoadAsync-Methode. Ein Beispiel für die Verwendung der LoadAsync Methode zur Ausführung von CRUD Operationen auf hoher Ebene in einer DynamoDB-Tabelle finden Sie im folgenden Beispiel.

/// <summary> /// Shows how to perform high-level CRUD operations on an Amazon DynamoDB /// table. /// </summary> public class HighLevelItemCrud { public static async Task Main() { var client = new AmazonDynamoDBClient(); DynamoDBContext context = new DynamoDBContext(client); await PerformCRUDOperations(context); } public static async Task PerformCRUDOperations(IDynamoDBContext context) { int bookId = 1001; // Some unique value. Book myBook = new Book { Id = bookId, Title = "object persistence-AWS SDK for.NET SDK-Book 1001", Isbn = "111-1111111001", BookAuthors = new List<string> { "Author 1", "Author 2" }, }; // Save the book to the ProductCatalog table. await context.SaveAsync(myBook); // Retrieve the book from the ProductCatalog table. Book bookRetrieved = await context.LoadAsync<Book>(bookId); // Update some properties. bookRetrieved.Isbn = "222-2222221001"; // Update existing authors list with the following values. bookRetrieved.BookAuthors = new List<string> { " Author 1", "Author x" }; await context.SaveAsync(bookRetrieved); // Retrieve the updated book. This time, add the optional // ConsistentRead parameter using DynamoDBContextConfig object. await context.LoadAsync<Book>(bookId, new DynamoDBContextConfig { ConsistentRead = true, }); // Delete the book. await context.DeleteAsync<Book>(bookId); // Try to retrieve deleted book. It should return null. Book deletedBook = await context.LoadAsync<Book>(bookId, new DynamoDBContextConfig { ConsistentRead = true, }); if (deletedBook == null) { Console.WriteLine("Book is deleted"); } } }

Abfrage

Abfragen einer Tabelle basierend auf den Abfrageparametern, die Sie bereitstellen.

Sie können eine Tabelle nur dann abfragen, wenn sie über einen zusammengesetzten Primärschlüssel verfügt (Partitionsschlüssel und Sortierschlüssel). Bei der Abfrage müssen Sie einen Partitionsschlüssel und eine Bedingung angeben, die für den Sortierschlüssel gilt.

Angenommen, Sie verfügen über die clientseitige Klasse Reply, die der Tabelle Reply in DynamoDB zugeordnet ist. Das folgende C#-Codebeispiel fragt die Tabelle Reply ab, um alle Forum-Thread-Antworten zu finden, die in den letzten 15 Tagen veröffentlicht wurden. Die Tabelle Reply verfügt über einen Primärschlüssel, der aus einem Partitionsschlüssel (Id) und Sortierschlüssel (ReplyDateTime) besteht.

Beispiel
DynamoDBContext context = new DynamoDBContext(client); string replyId = "DynamoDB#DynamoDB Thread 1"; //Partition key DateTime twoWeeksAgoDate = DateTime.UtcNow.Subtract(new TimeSpan(14, 0, 0, 0)); // Date to compare. IEnumerable<Reply> latestReplies = context.Query<Reply>(replyId, QueryOperator.GreaterThan, twoWeeksAgoDate);

Dies gibt eine Sammlung von Reply-Objekten zurück.

Die Methode Query gibt standardmäßig eine „lazy-loaded“ IEnumerable-Sammlung zurück. Sie gibt anfänglich ausschließlich eine Ergebnisseite zurück und führt dann bei Bedarf einen Dienstaufruf für die nächste Seite durch. Um alle übereinstimmenden Elemente zu erhalten, müssen Sie lediglich die IEnumerable-Sammlung durchlaufen.

Wenn die Tabelle über einen einfachen Primärschlüssel (Partitionsschlüssel) verfügt, können Sie die Methode Query nicht verwenden. Stattdessen können Sie die Methode Load verwenden und den Partitionsschlüssel bereitstellen, um das Element abzurufen.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die QueryAsync-Methode.

Save

Speichert das angegebene Objekt in der Tabelle. Wenn der im Eingabeobjekt angegebene Primärschlüssel in der Tabelle nicht vorhanden ist, fügt die Methode der Tabelle ein neues Element hinzu. Wenn der Primärschlüssel vorhanden ist, aktualisiert die Methode das vorhandene Element.

Wenn Sie eine optimistische Sperre konfiguriert haben, ist die Aktualisierung nur dann erfolgreich, wenn die client- und serverseitigen Versionen des Elements übereinstimmen. Weitere Informationen finden Sie unter Optimistisches Sperren mit DynamoDB und dem AWS SDK for .NET Objektpersistenzmodell.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die SaveAsync-Methode.

Scan

Führt einen gesamten Tabellen-Scan durch.

Sie können Scan-Ergebnisse filtern, indem Sie eine Scan-Bedingung angeben. Die Bedingung kann auf jedem Attribut in der Tabelle ausgewertet werden. Angenommen, Sie verfügen über die clientseitige Klasse Book, die der Tabelle ProductCatalog in DynamoDB zugeordnet ist. Im folgenden C#-Beispiel werden die Tabelle gescannt und ausschließlich die Book-Elemente zurückgegeben, deren Preis kleiner als 0 ist.

Beispiel
IEnumerable<Book> itemsWithWrongPrice = context.Scan<Book>( new ScanCondition("Price", ScanOperator.LessThan, price), new ScanCondition("ProductCategory", ScanOperator.Equal, "Book") );

Die Methode Scan gibt standardmäßig eine „lazy-loaded“ IEnumerable-Sammlung zurück. Sie gibt anfänglich ausschließlich eine Ergebnisseite zurück und führt dann bei Bedarf einen Dienstaufruf für die nächste Seite durch. Um alle übereinstimmenden Elemente zu erhalten, müssen Sie lediglich die IEnumerable-Sammlung durchlaufen.

Aus Leistungsgründen sollten Sie Ihre Tabellen abfragen und einen Tabellen-Scan vermeiden.

Anmerkung

Um diese Operation im Hintergrund auszuführen, nutzen Sie stattdessen die ScanAsync-Methode.

ToDocument

Gibt eine Instance der Document-Dokumentenmodell-Klasse aus Ihrer Klassen-Instance zurück.

Dies ist hilfreich, wenn Sie die Dokumentenmodell-Klassen zusammen mit dem Object Persistence-Modell verwenden möchten, um beliebige Datenoperationen durchzuführen. Weitere Informationen zu den von der bereitgestellten Dokumentmodellklassen finden Sie AWS SDK for .NET unter. Ich arbeite mit dem. NETDokumentmodell in DynamoDB

Angenommen, Sie verfügen über eine clientseitige Klasse, die der Tabelle Forum zugeordnet ist. Sie können anschließend einen DynamoDBContext verwenden, um ein Element als Document-Objekt aus der Tabelle Forum abzurufen, wie im folgenden C#-Codebeispiel gezeigt.

Beispiel
DynamoDBContext context = new DynamoDBContext(client); Forum forum101 = context.Load<Forum>(101); // Retrieve a forum by primary key. Document doc = context.ToDocument<Forum>(forum101);

Optionale Parameter für D angeben ynamoDBContext

Wenn Sie das Object Persistence-Modell verwenden, können Sie für den DynamoDBContext folgende optionale Parameter angeben.

  • ConsistentReadBeim Abrufen von Daten mithilfe der Load, Query oder Scan-Operation können Sie diesen Parameter optional hinzufügen, um die neuesten Werte der Daten anzufordern.

  • IgnoreNullValuesDieser Parameter teilt DynamoDBContext mit, Null-Werte von Attributen während einer Save-Operation zu ignorieren. Wenn dieser Parameter „false“ oder nicht festgelegt ist, wird ein Nullwert als Anweisung interpretiert, das betreffende Attribut zu löschen.

  • SkipVersionCheck Dieser Parameter teilt DynamoDBContext mit, beim Speichern oder Löschen von Elementen keine Versionen zu vergleichen. Weitere Informationen über das Versioning finden Sie unter Optimistisches Sperren mit DynamoDB und dem AWS SDK for .NET Objektpersistenzmodell.

  • TableNamePrefix Stellt allen Tabellennamen eine bestimmte Zeichenfolge voran. Wenn dieser Parameter Null ist (oder nicht festgelegt ist), dann wird kein Präfix verwendet.

  • DynamoDBEntryConversion— Gibt das Konvertierungsschema an, das vom Client verwendet wird. Sie können diesen Parameter auf Version V1 oder V2 setzen. V1 ist die Standardversion.

    Je nach der von Ihnen festgelegten Version ändert sich das Verhalten dieses Parameters. Beispielsweise:

    • In V1 wird der bool Datentyp in den N Zahlentyp konvertiert, wobei 0 für falsch und 1 für wahr steht. In V2 bool wird konvertiert inBOOL.

    • In V2 werden Listen und Arrays nicht zusammen mit HashSets gruppiert. Listen und Arrays mit numerischen, auf Zeichenketten basierenden Typen und binären Typen werden in den Typ L (List) konvertiert, der leer gesendet werden kann, um eine Liste zu aktualisieren. Dies ist anders als bei V1, wo eine leere Liste nicht drahtgebunden gesendet wird.

      In V1 werden Sammlungstypen wie List und Arrays gleich behandelt. HashSet Liste und HashSet Array von Zahlen werden in den Typ NS (Zahlensatz) konvertiert.

    Im folgenden Beispiel wird die Version des Konvertierungsschemas auf V2 festgelegt, wodurch sich das Konvertierungsverhalten zwischen den beiden ändert. NETTypen und DynamoDB-Datentypen.

    var config = new DynamoDBContextConfig { Conversion = DynamoDBEntryConversion.V2 }; var contextV2 = new DynamoDBContext(client, config);

Im folgenden C#-Beispiel wird ein neues erstellt, DynamoDBContext indem zwei der vorherigen optionalen Parameter angegeben werden, und. ConsistentRead SkipVersionCheck

Beispiel
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); ... DynamoDBContext context = new DynamoDBContext(client, new DynamoDBContextConfig { ConsistentRead = true, SkipVersionCheck = true});

DynamoDBContext berücksichtigt diese optionalen Parameter bei jeder Anforderung, die unter Verwendung dieses Kontextes gesendet werden.

Anstatt diese Parameter auf der DynamoDBContext-Ebene festzulegen, können Sie diese mithilfe von DynamoDBContext für einzelne von Ihnen ausgeführte Operationen festlegen, wie im folgenden C#-Codebeispiel gezeigt. Das Beispiel lädt ein bestimmtes Book-Element. Die Load Methode von DynamoDBContext gibt die ConsistentRead und die SkipVersionCheck optionalen Parameter an.

Beispiel
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); ... DynamoDBContext context = new DynamoDBContext(client); Book bookItem = context.Load<Book>(productId,new DynamoDBContextConfig{ ConsistentRead = true, SkipVersionCheck = true });

In diesem Fall berücksichtigt DynamoDBContext diese Parameter ausschließlich beim Senden der Get-Anforderung.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.