我已经实现了一种方法来计算从查询中检索到的所有实体。如果实体超过1000,我使用延续令牌继续
public static function countResults($storageAccountName, $tableName, $filter, $projections = null)
{
$count = 0;
$options = null;
$continue = false;
do
{
$options = Azure::getEntitiesFromTable($storageAccountName, $tableName, $filter, $projections, $options);
$currentResults = $options->getEntities();
$count += count($currentResults);
// if specified it means there are other results
$continue = (!is_null($options->getNextPartitionKey()) && !is_null($options->getNextRowKey()));
} while ($continue);
return $count;
}
我只返回QueryEntitiesResult对象,并将其用作执行过滤器的方法的输入,它获取分区键和行键并将它们设置为传递给TableRestProxy-> queryEntities的QueryEntitiesOptions对象
因此没有任何内容适用于延续令牌。问题是TableRestProxy-> queryEntities将$ this-> _encodeODataUriValue应用于pkey和rowkey。这会使令牌失效,并始终返回相同的前1000个结果。 删除它的编码工作。这是图书馆的错误吗?