Azure table 存储 - Table 服务查询检索和 return 10 个实体直到最后一个实体
Azure table Storage - Table service Query to retrieve and return 10 entities till last entity
我有一个 table 存储 table,其中包含 2000 多个实体。执行 Table 服务查询执行以一次性获取所有 2000 个实体需要时间。所以我试图使用 LINQ Take 运算符,但它只 returning 10 个实体。应该如何获取和 return 接下来的 10 个实体直到所有 2000 个实体?
var query = (from entity in context.CreateQuery<Customer>("FirstTenEntities")
select entity).Take(10);
我认为你应该使用 segmented tokens
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);
这样,如果您要 return 向客户端发送数据,您将需要 return 取回此令牌,以便您可以获取下一批
我有一个 table 存储 table,其中包含 2000 多个实体。执行 Table 服务查询执行以一次性获取所有 2000 个实体需要时间。所以我试图使用 LINQ Take 运算符,但它只 returning 10 个实体。应该如何获取和 return 接下来的 10 个实体直到所有 2000 个实体?
var query = (from entity in context.CreateQuery<Customer>("FirstTenEntities")
select entity).Take(10);
我认为你应该使用 segmented tokens
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);
这样,如果您要 return 向客户端发送数据,您将需要 return 取回此令牌,以便您可以获取下一批