使用 .NET Core 从 Azure Table 存储中检索前 n 条记录

Retrieve top n records from Azure Table Storage with .NET Core

是否可以使用 C# 从 Azure Table 存储中检索前 n 条记录?我正在使用 .NET Core。

如果我也能得到一些参考就好了。

请注意,我所有的实体都是使用日志尾模式存储的https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-design-guide#log-tail-pattern

谢谢, 普拉文

您可以使用 Take() method when creating your TableQuery:

TableQuery<T> query = new TableQuery<T>().Take(takeCount);

或设置属性TakeCount来指定:

TableQuery<T> query = new TableQuery<T>();
query.TakeCount = takeCount;

我们为获得 table 的顶级实体所做的工作如下:

var query = new TableQuery<TEntity>()
            .Where(partitionFilter)
            .Take(limit);

return await ExecuteQuery(table, query);

创建查询并使用 .Take(limit) 指定我们想要的实体数量。

 do
 {
      var seg = await table.ExecuteQuerySegmentedAsync<TEntity>(query, token);

      token = seg.ContinuationToken;

      items.AddRange(seg);
 } while (token != null && items.Count < query.TakeCount);

ExecuteQuery 方法中,我们计算了从 table 中检索到的记录数。这就是我们的工作方式,我假设为了获得顶级 n 个实体,limit 应该设置为 n.