0

我正在使用MobileServiceClient提供的类Azure从我的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();
4

1 回答 1

1

请阅读以下摘录:

默认情况下,表控制器中的读取操作将返回最多 50 个项目。如果我们的表存储中有更多,那么客户端将需要通过将 ToListAsync 或 ToEnumerableAsync 方法的结果转换为 IQueryResultEnumerable 接口来请求更多。下面的代码显示了如何遍历表中的所有元素。

 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

于 2017-06-23T05:10:45.220 回答