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:
- Retornar um
TableEntity
objeto usandoGetEntityAsync<>
- Retornar um objeto do seu próprio tipo usando
GetEntityAsync<>
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.