Lesen eines Elements in Azure Cosmos DB for Table mithilfe von .NET
GILT FÜR: Tabelle
Elemente in Azure Cosmos DB repräsentieren eine bestimmte Entität, die in einer Tabelle gespeichert ist. In der API für Table besteht ein Element aus einem Satz von Schlüssel-Wert-Paaren, die durch die Zusammensetzung der Zeilen- und Partitionsschlüssel eindeutig identifiziert werden.
Lesen von Elementen mithilfe des zusammengesetzten Schlüssels
Jedes Element in Azure Cosmos DB for Table weist einen eindeutigen Bezeichner auf, der durch die Zusammensetzung der Zeilen- und Partitionsschlüssel angegeben wird. Diese zusammengesetzten Schlüssel werden als Eigenschaften RowKey
bzw. PartitionKey
gespeichert. Innerhalb des Bereichs einer Tabelle können zwei Elemente nicht denselben eindeutigen Bezeichner aufweisen.
Azure Cosmos DB benötigt sowohl den eindeutigen Bezeichner als auch den Partitionsschlüsselwert eines Elements, um einen Lesevorgang für das Element durchführen zu können. Insbesondere wird durch die Bereitstellung des zusammengesetzten Schlüssels ein schneller Punktlesevorgang für dieses Elements mit vorhersehbaren Kosten in Form von Anforderungseinheiten (Request Units, RUs) durchgeführt.
Lesen eines Elements
Verfolgen Sie zum Ausführen eines Punktlesevorgangs für ein Element eine der folgenden Strategien:
- Rückgabe eines
TableEntity
Objekts mitGetEntityAsync<>
- Rückgabe eines Objekts eines eigenen Typs mit
GetEntityAsync<>
Lesen eines Elements mithilfe einer integrierten Klasse
Der folgende Beispielpunkt liest ein einzelnes Element asynchron und gibt die Ergebnisse unter Verwendung des integrierten Typs TableEntity
deserialisiert an ein Wörterbuch zurück:
// Read existing item from server-side table
TableEntity readItem = await tableClient.GetEntityAsync<TableEntity>(
partitionKey: "68719518388",
rowKey: "gear-surf-surfboards"
);
Die Methode TableClient.GetEntityAsync<TableEntity>
liest ein Element und gibt ein Objekt des Typs Response<TableEntity>
zurück. Der Typ Response<> enthält einen impliziten Konvertierungsoperator, um das Objekt in ein **TableEntity``-Objekt zu konvertieren.
Lesen eines Elements mithilfe Ihres eigenen Typs
Hinweis
In den Beispielen dieses Abschnitts wird davon ausgegangen, dass Sie bereits einen C#-Typ namens Product definiert haben, der Ihre Daten darstellt:
// C# record type for items in the table
public record Product : ITableEntity
{
public string RowKey { get; set; } = default!;
public string PartitionKey { get; set; } = default!;
public string Name { get; init; } = default!;
public int Quantity { get; init; }
public bool Sale { get; init; }
public ETag ETag { get; set; } = default!;
public DateTimeOffset? Timestamp { get; set; } = default!;
}
Im folgenden Beispiel wird ein asynchroner Punktlesevorgang für ein einzelnes Element durchgeführt und ein deserialisiertes Element mit dem angegebenen generischen Typ zurückgegeben:
// Read existing item from server-side table
Product readItem = await tableClient.GetEntityAsync<Product>(
partitionKey: "68719518388",
rowKey: "gear-surf-surfboards"
);
Wichtig
Der generische Typ, den Sie mit der Methode TableClient.GetEntityAsync<> verwenden, muss die ITableEntity
-Schnittstelle implementieren.
Die Methode TableClient.GetEntityAsync<>
liest ein Element und gibt ein Objekt des Typs Response<>
zurück. Der Typ Response<> enthält einen impliziten Konvertierungsoperator, um das Objekt in den generischen Typ zu konvertieren. Weitere Informationen zu impliziten Operatoren finden Sie unter Benutzerdefinierte Konvertierungsoperatoren (C#-Referenz).
Nächste Schritte
Nachdem Sie nun verschiedene Elemente gelesen haben, können Sie eines unserer Tutorials zur Abfrage von Azure Cosmos DB for Table-Daten ausprobieren.