使用 .NET Core 从 Azure Table Storage 检索前 n 条记录

7

请在不使用Top N条件的情况下,包含代码。如果您使用Linq,请尝试添加.Take(n) - Peter B
2个回答

13

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

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

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

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

仅设置 TakeCount 对我来说不起作用。我不得不遵循这个示例并检查检索到的实体计数。无论如何,这个答案是实现解决方案的第一步 :) - Marian Simonca
嗨@Simonca。你能够检索到顶部实体吗?感谢您的解决方案。 - DCodes
嗨@DCodes!我已经添加了一个答案,里面包含我们使用的解决方案,希望能对你有所帮助。 - Marian Simonca
非常感谢您写下简洁明了、并附上例子的回答! - jamesdlivesinatree

3
我们获取表格中前排实体的步骤如下:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接