【问题标题】:Azure MobileService Client - ToListAsync not retrieving all dataAzure MobileService 客户端 - ToListAsync 未检索所有数据
【发布时间】:2017-11-26 12:35:24
【问题描述】:

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

【问题讨论】:

    标签: c# azure azure-mobile-services azure-sql-database mobileserviceclient


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多