azure - Azure 表存储 - 表服务查询以检索并返回 10 个实体,直到最后一个实体
问题描述
我有一个包含 2000 多个实体的表存储表。执行表服务查询以一次性获取所有 2000 个实体需要时间。所以我试图使用 LINQ Take 运算符,但它只返回 10 个实体。应该如何获取并返回接下来的 10 个实体,直到所有 2000 个实体?
var query = (from entity in context.CreateQuery<Customer>("FirstTenEntities")
select entity).Take(10);
解决方案
我认为您应该使用分段令牌
string filter = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "Sales");
TableQuery<EmployeeEntity> employeeQuery = new TableQuery<EmployeeEntity>().Where(filter);
employeeQuery.TakeCount = 50;
TableContinuationToken continuationToken = null;
do
{
var employees = employeeTable.ExecuteQuerySegmented(employeeQuery, continuationToken);
foreach (var emp in employees)
{
// ...
}
continuationToken = employees.ContinuationToken;
} while (continuationToken != null);
这样,如果您将数据返回给客户端,则需要返回此令牌,以便您可以获取下一批
推荐阅读
- html - 从 vb.net 打印网页
- php - 使用注解限制对 Symfony 3.4 路由/方法的访问到一个特定角色
- asp.net-core - 过滤后的 Asp.Net 核心 ODATA 计算属性
- xamarin - System.Net.Http.HttpRequestException:'404(未找到)'
- airflow - 如何修复 DAG 似乎缺失?
- javascript - 为什么除了 JavaScript 中的正确输出外,我还会收到“未定义”?我想摆脱“未定义”
- java - 使用spring boot的couchbase存储库的通用类型
- excel - 有没有办法循环遍历类属性来填充它们?
- javascript - Alfresco javascript 获取自定义 DataList 的属性
- spring - 在SpringBoot中如何确保@Async method1在@Asyn method2之前执行?