gpt4 book ai didi

c# - Azure 表查询异步 - 始终返回连续 token

转载 作者:行者123 更新时间:2023-11-30 17:46:24 24 4
gpt4 key购买 nike

我尝试使用 ExecuteQuerySegmentedAsync 对 Azure 表存储执行异步 TableQuery。代码的相关部分如下:

public async Task<List<MyEntity>> GetTableData()
{
CloudTableClient tableClient = GetTableClient();

CloudTable table = tableClient.GetTableReference("MyTableName");

TableQuery<MyEntity> query = new TableQuery<MyEntity>().Take(10);

List<MyEntity> results = new List<MyEntity>();
TableContinuationToken token = null;

do
{
var seg = await table.ExecuteQuerySegmentedAsync(query, token);
token = seg.ContinuationToken;
results.AddRange(seg.Results);
}
while (token != null);

return results
}

问题在于,虽然 ExecuteQuerySegmentedAsync 返回正确的记录数,但连续标记永远不会为空,并且代码会不断循环。

有人能指出我正确的方向吗?

我正在使用 Windows Azure 存储 4.3.0.0

最佳答案

这是预期的行为。基本上,您一次从表中获取 10 个实体的所有实体 ( new TableQuery<MyEntity>().Take(10) )。因此,在一次调用中,表服务会返回 10 个实体,并且因为表中有超过 10 个实体(我假设),所以它会返回一个继续标记,从而循环继续。

关于c# - Azure 表查询异步 - 始终返回连续 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com