Udostępnij za pośrednictwem


Odczytywanie elementu w usłudze Azure Cosmos DB dla tabeli przy użyciu platformy .NET

DOTYCZY: Stół

Elementy w usłudze Azure Cosmos DB reprezentują określoną jednostkę przechowywaną w tabeli. W interfejsie API dla tabeli element składa się z zestawu par klucz-wartość jednoznacznie identyfikowanych przez złożone klucze wiersza i partycji.

Odczytywanie elementów przy użyciu klucza złożonego

Każdy element w usłudze Azure Cosmos DB dla tabeli ma unikatowy identyfikator określony przez złożone klucze wiersza i partycji . Te klucze złożone są przechowywane odpowiednio jako RowKey właściwości i PartitionKey . W zakresie tabeli dwa elementy nie mogą współdzielić tego samego unikatowego identyfikatora złożonego.

Usługa Azure Cosmos DB wymaga zarówno unikatowego identyfikatora, jak i wartości klucza partycji elementu do odczytu elementu. W szczególności udostępnienie klucza złożonego spowoduje szybkie odczytanie tego elementu z przewidywalnym kosztem w jednostkach żądań (RU).

Odczytywanie elementu

Aby wykonać odczyt punktu elementu, użyj jednej z następujących strategii:

Odczytywanie elementu przy użyciu wbudowanej klasy

Poniższy przykładowy punkt odczytuje jeden element asynchronicznie i zwraca wyniki deserializowane do słownika przy użyciu wbudowanego TableEntity typu:

// Read existing item from server-side table
TableEntity readItem = await tableClient.GetEntityAsync<TableEntity>(
    partitionKey: "68719518388",
    rowKey: "gear-surf-surfboards"
);

Metoda TableClient.GetEntityAsync<TableEntity> odczytuje element i zwraca obiekt typu Response<TableEntity>. Typ odpowiedzi<> zawiera niejawny operator konwersji w celu przekonwertowania obiektu na obiekt **TableEntity".

Odczytywanie elementu przy użyciu własnego typu

Uwaga

W przykładach w tej sekcji założono, że zdefiniowano już typ języka C#, aby reprezentować dane o nazwie Product:

// 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!;
}

Poniższy przykładowy punkt odczytuje asynchronicznie pojedynczy element i zwraca zdeserializowany element przy użyciu podanego typu ogólnego:

// Read existing item from server-side table
Product readItem = await tableClient.GetEntityAsync<Product>(
    partitionKey: "68719518388",
    rowKey: "gear-surf-surfboards"
);

Ważne

Typ ogólny używany z metodą TableClient.GetEntityAsync<> musi implementować ITableEntity interfejs.

Metoda TableClient.GetEntityAsync<> odczytuje element i zwraca obiekt typu Response<>. Typ odpowiedzi<> zawiera niejawny operator konwersji, aby przekonwertować obiekt na typ ogólny. Aby dowiedzieć się więcej na temat operatorów niejawnych, zobacz Operatory konwersji zdefiniowane przez użytkownika.

Następne kroki

Teraz, gdy znasz już różne elementy, wypróbuj jeden z naszych samouczków dotyczących wykonywania zapytań dotyczących danych usługi Azure Cosmos DB dla tabel.