使用 .NET 在 Azure Cosmos DB for Table 中讀取項目
適用於: 桌子
Azure Cosmos DB 中的項目代表儲存在資料表內的特定實體。 在 API for Table 中,項目是由一組索引鍵值組所組成,其是由資料列和分割區索引鍵的組合所唯一1識別。
使用複合索引鍵讀取項目
Azure Cosmos DB for Table 中的每個項目都有唯一識別碼,其是由資料列和分割區索引鍵的組合所指定。 這些複合索引鍵會分別儲存為 RowKey
和 PartitionKey
屬性。 在資料表的範圍內,兩個項目無法共用相同的唯一識別碼複合。
Azure Cosmos DB 需要項目的唯一識別碼和分割區索引鍵值,才能執行項目的讀取。 具體而言,假設複合索引鍵將以要求單位 (RU) 的可預測成本,執行該項目的快速點讀取。
讀取項目
若要執行項目的點讀取,請使用下列其中一項策略:
- 使用
GetEntityAsync<>
傳回TableEntity
物件 - 使用
GetEntityAsync<>
傳回自己類型的物件
使用內建類別讀取項目
下列範例會非同步點讀取單一項目並使用內建 TableEntity
類型將序列化的結果傳回至目錄:
// Read existing item from server-side table
TableEntity readItem = await tableClient.GetEntityAsync<TableEntity>(
partitionKey: "68719518388",
rowKey: "gear-surf-surfboards"
);
TableClient.GetEntityAsync<TableEntity>
方法會讀取項目並傳回 Response<TableEntity>
類型的物件。 Response<> 類型包含隱含轉換運算子,可將物件轉化成 **TableEntity`` 物件。
使用自己的類型讀取項目
注意
本節中的範例假設您已定義 C# 類型以代表名稱為 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!;
}
下列範例點會以非同步方式讀取單一項目,並使用提供的泛型型別傳回還原序列化項目:
// Read existing item from server-side table
Product readItem = await tableClient.GetEntityAsync<Product>(
partitionKey: "68719518388",
rowKey: "gear-surf-surfboards"
);
重要
您搭配 TableClient.GetEntityAsync<> 方法使用的泛型型別必須實作 ITableEntity
介面。
TableClient.GetEntityAsync<>
方法會讀取項目並傳回 Response<>
類型的物件。 Response<> 類型包含隱含轉換運算子,可將物件轉換成泛型型別。 若要深入瞭解隱含運算子,請參閱使用者定義的轉換運算子。
下一步
既然您已閱讀各種項目,請嘗試有關查詢 Azure Cosmos DB for Table 資料的其中一個教學課程。