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:
- Devuelva un objeto
TableEntity
medianteGetEntityAsync<>
- Devuelva un objeto de su propio tipo mediante
GetEntityAsync<>
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.