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

时间:2018-06-04 14:05:38

标签: c# .net-core azure-table-storage

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

如果我能得到一些参考资料,那将会很棒。

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

进行存储

谢谢, 普利文

2 个答案:

答案 0 :(得分:4)

您可以在创建Take()时使用TableQuery方法:

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

或者设置属性TakeCount以指定它:

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

答案 1 :(得分:0)

我们为获取表的顶部实体所做的工作如下:

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方法中,我们计算了从表中检索到的记录数。这是我们的工作方式和工作方式,我假设为了接受排名靠前的n实体,应将limit设置为n