0

我正在使用由Azure提供的MobileServiceClient類從我的Azure SQL database中提取數據。當我使用ToListAsync()函數時,似乎我只能從數據庫中獲得前60行左右的行。有沒有解決的辦法?Azure MobileService客戶端 - ToListAsync不檢索所有數據

List<riskregister_hazard_template> categories; 

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

回答

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/

希望這有助於。

問候,

阿爾貝託Morillo的

SQLCoffee.com