Condividi tramite


Leggere un elemento in Azure Cosmos DB for Table tramite .NET

SI APPLICA A: Tabella

Gli elementi in Azure Cosmos DB rappresentano un'entità specifica archiviata all'interno di una tabella. Nell'API per Table un elemento è costituito da un set di coppie chiave-valore identificate in modo univoco dalla combinazione delle chiavi di riga e di partizione.

Lettura di elementi tramite la chiave composta

Ogni elemento in Azure Cosmos DB for Table ha un identificatore univoco specificato dalla combinazione delle chiavi di riga e di partizione. Queste chiavi composite vengono archiviate, rispettivamente, come proprietà RowKey e PartitionKey. Nell'ambito di una tabella, due elementi non possono condividere lo stesso identificatore univoco composito.

Azure Cosmos DB richiede sia l'identificatore univoco che il valore della chiave di partizione di un elemento per eseguire una lettura dell'elemento. In particolare, specificando la chiave composita verrà eseguita una rapida lettura di punti dell'elemento, con un costo prevedibile in unità richiesta (UR).

Leggere un elemento

Per eseguire una lettura di punti di un elemento, usare una delle strategie seguenti:

Leggere un elemento usando una classe predefinita

L'esempio seguente esegue la lettura di punti di un singolo elemento in modo asincrono e restituisce i risultati deserializzati in un dizionario usando il tipo TableEntity predefinito:

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

Il metodo TableClient.GetEntityAsync<TableEntity> legge un elemento e restituisce un oggetto di tipo Response<TableEntity>. Il tipo Response<> contiene un operatore di conversione implicito per convertire l'oggetto in un oggetto **TableEntity''.

Leggere un elemento usando un tipo personalizzato

Nota

Gli esempi forniti in questa sezione presuppongono che sia già stato definito un tipo C# per rappresentare i dati denominati Prodotto:

// 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'esempio seguente esegue la lettura di punti di un singolo elemento in modo asincrono e restituisce un elemento deserializzato usando il tipo generico specificato:

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

Importante

Il tipo generico usato con il metodo TableClient.GetEntityAsync<> deve implementare l'interfaccia ITableEntity.

Il metodo TableClient.GetEntityAsync<> legge un elemento e restituisce un oggetto di tipo Response<>. Il tipo Response<> contiene un operatore di conversione implicito per convertire l'oggetto in un tipo generico. Per altre informazioni sugli operatori impliciti, consultare operatori di conversione definiti dall'utente.

Passaggi successivi

Dopo aver letto vari elementi, provare una delle esercitazioni su come eseguire query sui dati di Azure Cosmos DB for Table.