c# - 使用 azure 表存储进行分页(升序)

标签 c# azure azure-table-storage azure-tablequery

这可以很好地以最多 1000 个项目的步长对数据进行分页:

var q1 =
  (from book in table.CreateQuery<DynamicTableEntity>()
   where book.PartitionKey == "TestPartition"
   select book).AsTableQuery();

TableContinuationToken continuationToken = null;
do
{
    var counter = 0;
    var queryResult = q1.ExecuteSegmented(continuationToken);

    foreach (var entity in queryResult)
    {
    Console.WriteLine(entity.Timestamp + " " + ++counter);
    }

    continuationToken = queryResult.ContinuationToken;
    Console.WriteLine("####" + counter);
} while (continuationToken != null);

我真正想做的是首先从最旧的项目开始。换句话说,分页按实体.时间戳升序排列的项目。此查询不起作用:

    var q1 =
  (from book in table.CreateQuery<DynamicTableEntity>()
   where book.PartitionKey == "TestPartition"
   select book).OrderBy(x => x.Timestamp).AsTableQuery();

    TableContinuationToken continuationToken = null;
    do
    {
        var counter = 0;
        var queryResult = q1.ExecuteSegmented(continuationToken);

        foreach (var entity in queryResult)
        {
        Console.WriteLine(entity.Timestamp + " " + ++counter);
        }

        continuationToken = queryResult.ContinuationToken;
        Console.WriteLine("####" + counter);
    } while (continuationToken != null);

因为不支持 OrderBy。我可以做些什么来实现这一目标吗?谢谢。

附注:

This可能有帮助。但是,它首先检索最新的项目,而我想先检索最旧的项目。

最佳答案

TableQuery 不支持 order by。您可以找到支持的运算符:Supported operators

关于c# - 使用 azure 表存储进行分页(升序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35534553/

相关文章:

通过虚拟网络网关的 Azure SQL 连接

database-design - NOSQL数据库设计

c# - 如何从Azure存储表中删除时间戳超过1天的所有实体?

c# - 使用 C# 更新 json 文件中的属性

c# - 尝试使用 ExecuteScalar ,并得到 "Specified cast is not valid "错误

c# - 取消执行方法的正确方法

c# - 有没有一种方法可以使用对象的形状而不是继承来对通用函数参数进行类型检查?

python - 如何在 Azure 中使用 Python SDK 将 LogAnalyticsWorkSpace 扩展添加到 VM

azure - 没有 "Common Data Service"API 选项 Azure

java - 使用java在azure表存储中存储复杂数据类型的正确方法是什么?