Partilhar via


Ler um item no Azure Cosmos DB for Table usando o .NET

APLICA-SE A: Tabela

Os itens no Azure Cosmos DB representam uma entidade específica armazenada em uma tabela. Na API para Tabela, um item consiste em um conjunto de pares chave-valor identificados exclusivamente pela composição das chaves de linha e partição.

Leitura de itens usando a chave composta

Cada item no Azure Cosmos DB for Table tem um identificador exclusivo especificado pela composição das chaves de linha e partição . Essas chaves compostas são armazenadas como as RowKey propriedades e PartitionKey respectivamente. No escopo de uma tabela, dois itens não podem compartilhar o mesmo composto de identificador exclusivo.

O Azure Cosmos DB requer o identificador exclusivo e o valor da chave de partição de um item para executar uma leitura do item. Especificamente, fornecer a chave composta executará uma leitura pontual rápida desse item com um custo previsível em unidades de solicitação (RUs).

Ler um item

Para executar uma leitura pontual de um item, use uma das seguintes estratégias:

Ler um item usando uma classe interna

O ponto de exemplo a seguir lê um único item de forma assíncrona e retorna os resultados desserializados em um dicionário usando o tipo interno TableEntity :

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

O TableClient.GetEntityAsync<TableEntity> método lê um item e retorna um objeto do tipo Response<TableEntity>. O tipo Response<> contém um operador de conversão implícito para converter o objeto em um objeto **TableEntity''.

Ler um item usando seu próprio tipo

Nota

Os exemplos nesta seção pressupõem que você já definiu um tipo de C# para representar seus dados chamado 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!;
}

O ponto de exemplo a seguir lê um único item de forma assíncrona e retorna um item desserializado usando o tipo genérico fornecido:

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

Importante

O tipo genérico que você usa com o método TableClient.GetEntityAsync<> deve implementar a ITableEntity interface.

O TableClient.GetEntityAsync<> método lê um item e retorna um objeto do tipo Response<>. O tipo Response<> contém um operador de conversão implícito para converter o objeto no tipo genérico. Para saber mais sobre operadores implícitos, consulte Operadores de conversão definidos pelo usuário.

Próximos passos

Agora que você leu vários itens, experimente um de nossos tutoriais sobre como consultar o Azure Cosmos DB para dados de tabela.