Dela via


Läsa ett objekt i Azure Cosmos DB för tabell med hjälp av .NET

GÄLLER FÖR: Bord

Objekt i Azure Cosmos DB representerar en specifik entitet som lagras i en tabell. I API:et för tabell består ett objekt av en uppsättning nyckel/värde-par som unikt identifieras av rad- och partitionsnycklarnas sammansättning.

Läsa objekt med den sammansatta nyckeln

Varje objekt i Azure Cosmos DB for Table har en unik identifierare som anges av rad- och partitionsnycklarnas sammansatta. Dessa sammansatta nycklar lagras som RowKey PartitionKey respektive egenskaper. Inom en tabells omfång kan två objekt inte dela samma unika identifierarkomposit.

Azure Cosmos DB kräver både den unika identifieraren och partitionsnyckelvärdet för ett objekt för att utföra en läsning av objektet. Mer specifikt utför den sammansatta nyckeln en snabbläsning av objektet med en förutsägbar kostnad i enheter för begäranden (RU:er).

Läsa ett objekt

Om du vill utföra en punktläsning av ett objekt använder du någon av följande strategier:

Läsa ett objekt med hjälp av en inbyggd klass

Följande exempelpunkt läser ett enskilt objekt asynkront och returnerar resultatet deserialiserat till en ordlista med den inbyggda TableEntity typen:

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

Metoden TableClient.GetEntityAsync<TableEntity> läser ett objekt och returnerar ett objekt av typen Response<TableEntity>. Svarstypen <> innehåller en implicit konverteringsoperator för att konvertera objektet till ett **TableEntity-objekt.

Läsa ett objekt med din egen typ

Kommentar

Exemplen i det här avsnittet förutsätter att du redan har definierat en C#-typ som representerar dina data med namnet 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!;
}

Följande exempelpunkt läser ett enskilt objekt asynkront och returnerar ett deserialiserat objekt med den angivna generiska typen:

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

Viktigt!

Den generiska typ som du använder med metoden TableClient.GetEntityAsync<> måste implementera ITableEntity gränssnittet.

Metoden TableClient.GetEntityAsync<> läser ett objekt och returnerar ett objekt av typen Response<>. Svarstypen <> innehåller en implicit konverteringsoperator för att konvertera objektet till den generiska typen. Mer information om implicita operatorer finns i användardefinierade konverteringsoperatorer.

Nästa steg

Nu när du har läst olika objekt kan du prova någon av våra självstudier om att fråga Azure Cosmos DB efter tabelldata.