使用 .NET 读取 Azure Cosmos DB for Table 中的项
适用对象: 表
Azure Cosmos DB 中的项表示存储在表中的特定实体。 在 API for Table 中,项由一组键值对组成,这些键值对由行键和分区键的组合唯一标识。
使用组合键读取项
Azure Cosmos DB for Table 中的每个项都具有由行键和分区键的组合指定的唯一标识符。 这些组合键分别存储为 RowKey
属性和 PartitionKey
属性。 在表范围内,两个项不能共享同一个唯一标识符组合。
Azure Cosmos DB 需要项的唯一标识符和分区键值来执行该项的读取。 具体而言,提供组合键将对该项执行快速点读取,其预计成本以请求单位 (RU) 为单位。
读取项
若要对项执行点读取,请使用以下策略之一:
使用内置类读取项
以下示例点异步读取单个项,并使用内置 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 数据的教程之一。