Azure MobileService 客户端 - ToListAsync 未检索所有数据

Azure MobileService Client - ToListAsync not retrieving all data

我正在使用 Azure 提供的 MobileServiceClient class 从我的 Azure SQL database 中获取数据。当我使用 ToListAsync() 函数时,我似乎只从我的数据库中获取前 60 行左右。有没有解决的办法?

List<riskregister_hazard_template> categories;

categories = await riskTable.Where(r => r.level_1 == _level1)
.Where(r => r.level_2 == _level2).ToListAsync();

请阅读以下摘录:

默认情况下,table 控制器中的读取操作将 return 最多 50 个项目。如果我们的 table 存储中有更多,则客户端将需要请求更多,方法是将 ToListAsync 或 ToEnumerableAsync 方法的结果强制转换为 IQueryResultEnumerable 接口。下面的代码显示了如何遍历 table.

中的所有元素
 public async Task<double> CalculateAverageAge()
{
    var client = new MobileServiceClient(AppUrl, AppKey);
    var table = client.GetTable<Person>();
    var sum = 0.0;
    var count = 0;
    var items = await table.Take(10).ToEnumerableAsync();
    while (items != null && items.Count() != 0)
    {
        count += items.Count();
        sum += Enumerable.Sum(items, i => i.Age);

        var queryResult = items as IQueryResultEnumerable<Person>;
        if (queryResult != null && queryResult.NextLink != null)
        {
            items = await table.ReadAsync<Person>(queryResult.NextLink);
        }
        else
        {
            items = null;
        }
    }

    return sum / count;
}

来源:https://azure.microsoft.com/en-us/blog/better-support-for-paging-with-table-storage-in-azure-mobile-services-net-backend/

希望对您有所帮助。

此致,

阿尔贝托·莫里洛

SQLCoffee.com