Compartir a través de


Lectura de un elemento en Azure Cosmos DB for Table mediante .NET

SE APLICA A: Table

Los elementos de Azure Cosmos DB representan una entidad específica almacenada dentro de una tabla. En la API para Table, un elemento consta de un conjunto de pares clave-valor identificados de forma única por la composición de las claves de fila y partición.

Lectura de elementos mediante la clave compuesta

Cada elemento de Azure Cosmos DB for Table tiene un identificador único especificado por la composición de las claves de fila y partición. Estas claves compuestas se almacenan como las propiedades RowKey y PartitionKey respectivamente. Dentro del ámbito de una tabla, dos elementos no pueden compartir la misma composición de identificador único.

Azure Cosmos DB requiere tanto el identificador único como el valor de clave de partición de un elemento para realizar una lectura del elemento. En concreto, proporcionar la clave compuesta realizará una lectura puntual rápida de ese elemento con un costo predecible en unidades de solicitud (RU).

Lectura de un elemento

Para realizar una lectura puntual de un elemento, use una de las estrategias siguientes:

Lea un elemento mediante una clase integrada

El siguiente ejemplo lee de forma puntual un solo elemento de forma asincrónica y devuelve los resultados deserializados en un diccionario mediante el tipo integrado TableEntity:

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

El método TableClient.GetEntityAsync<TableEntity> lee un elemento y devuelve un objeto de tipo Response<TableEntity>. El tipo Response<> contiene un operador de conversión implícito para convertir el objeto en un objeto **TableEntity''.

Leer un elemento con su propio tipo

Nota

En los ejemplos de esta sección se supone que ya ha definido un tipo de C# para representar los datos denominados 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!;
}

El siguiente ejemplo realiza una lectura puntual de un único elemento de forma asincrónica y devuelve un elemento deserializado mediante el tipo genérico proporcionado:

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

Importante

El tipo genérico que se usa con el método TableClient.GetEntityAsync<> debe implementar la interfaz ITableEntity.

El método TableClient.GetEntityAsync<> lee un elemento y devuelve un objeto de tipo Response<>. El tipo Response<> contiene un operador de conversión implícito para convertir el objeto en el tipo genérico. Para más información sobre los operadores implícitos, consulte Operadores de conversión definidos por el usuario.

Pasos siguientes

Ahora que ha leído varios elementos, pruebe uno de nuestros tutoriales sobre la consulta de datos de Azure Cosmos DB for Table.