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:
- Returnera ett
TableEntity
objekt med hjälp avGetEntityAsync<>
- Returnera ett objekt av din egen typ med hjälp av
GetEntityAsync<>
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.