.NET を使って Azure Cosmos DB for Table の項目を読み取る

適用対象: Table

Azure Cosmos DB 内の項目は、テーブル内に格納されている特定のエンティティを表します。 Table 用 API では、項目は、行キーとパーティション キーの複合によって一意に識別されるキーと値のペアのセットで構成されます。

複合キーを使用した項目の読み取り

Azure Cosmos DB for Table のすべての項目には、キーとパーティション キーの複合によって指定される一意識別子があります。 これらの複合キーは、それぞれ RowKey プロパティと PartitionKey プロパティとして格納されます。 1 つのテーブルのスコープ内で 2 つの項目が同じ一意の複合識別子を共有することはできません。

Azure Cosmos DB では、項目の読み取りを実行するために、項目の一意識別子とパーティション キー値の両方が必要です。 具体的には、複合キーを指定すると、要求ユニット (RU) 数で表される予測可能なコストで、その項目の迅速なポイント読み取りが実行されます。

項目を読み取る

項目のポイント読み取りを実行するには、次のいずれかの戦略を使用します。

組み込みクラスを使用して項目を読み取る

次の例では、1 つの項目のポイント読み取りを非同期的に行い、組み込みの 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`` オブジェクトに変換する暗黙的な変換演算子が含まれます。

独自の型を使用して項目を読み取る

注意

このセクションの例は、Product という名前のデータを表すために C# 型が既に定義されていることを前提としています。

// 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!;
}

次の例は、1 つの項目のポイント読み取りを非同期的に行い、指定されたジェネリック型を使用して逆シリアル化された項目を返します。

// 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 データのクエリに関するチュートリアルのいずれかを実践してみてください。