Freigeben über


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:

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.