Partager via


Lire un élément dans Azure Cosmos DB for Table à l’aide de .NET

S’APPLIQUE À : Table

Dans Azure Cosmos DB, les éléments représentent une entité spécifique stockée dans une table. Dans l’API pour Table, un élément se compose d’un ensemble de paires clé-valeur identifiées de manière unique par la combinaison des clés de ligne et de partition.

Lecture d’éléments à l’aide de la clé composite

Chaque élément d’Azure Cosmos DB for Table a un identificateur unique qui est spécifié par la combinaison des clés de ligne et de partition. Ces clés composites sont stockées en tant que propriétés RowKey et PartitionKey respectivement. Dans l’étendue d’une table, deux éléments ne peuvent pas partager une même combinaison d’identificateur unique.

Azure Cosmos DB nécessite à la fois l’identificateur unique et la valeur de clé de partition d’un élément pour effectuer la lecture de celui-ci. Plus précisément, la fourniture de la clé composite permet d’effectuer une lecture de point rapide de cet élément, avec un coût prévisible dans les unités de requête (RU).

Lire un élément

Pour effectuer la lecture de point d’un élément, utilisez l’une des stratégies suivantes :

Lire un élément à l’aide d’une classe intégrée

L’exemple de point suivant lit un seul élément de façon asynchrone et retourne les résultats désérialisés dans un dictionnaire à l’aide du type intégré TableEntity :

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

La méthode TableClient.GetEntityAsync<TableEntity> lit un élément et retourne un objet de type Response<TableEntity>. Le type Réponse<> contient un opérateur de conversion implicite pour convertir l’objet en objet **TableEntity``.

Lire un élément à l’aide de votre propre type

Notes

Les exemples de cette section partent du principe que vous avez déjà défini un type C# pour représenter vos données nommé 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!;
}

L’exemple suivant lit un élément unique de manière asynchrone et retourne un élément désérialisé à l’aide du type générique fourni :

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

Important

Le type générique que vous utilisez avec la méthode TableClient.GetEntityAsync<> doit implémenter l’interface ITableEntity.

La méthode TableClient.GetEntityAsync<> lit un élément et retourne un objet de type Response<>. Le type Réponse<> contient un opérateur de conversion implicite pour convertir l’objet en objet de type générique. Pour en savoir plus sur les opérateurs implicites, consultez Opérateurs de conversion définis par l’utilisateur.

Étapes suivantes

Maintenant que vous avez lu différents éléments, essayez l’un de nos tutoriels sur l’interrogation des données d’Azure Cosmos DB for Table.