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:
- Zwracanie
TableEntity
obiektu przy użyciu poleceniaGetEntityAsync<>
- Zwracanie obiektu własnego typu przy użyciu polecenia
GetEntityAsync<>
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.