2016-04-22 36 views
3
的odata.nextlink響應

我有一個從Dynamics CRM中檢索事務,下面的代碼塊(與OData的查詢):動態CRM - 如何處理在.net

public async Task<IEnumerable<Transaccion>> GetTransactions() 
    { 
     var tableName = Transaccion.CrmTableName; 

     var request = new RestRequest($"/api/data/v8.0/{tableName}"); 
     request.AddHeader("Prefer", "odata.maxpagesize=500"); 
     var responseData = await client.ExecuteGetTaskAsync<ODataResponse<List<Transaccion>>>(request); 
     var transactions = responseData.Data.Value; 

     while (responseData.Data.NextLink != null) 
     { 
      request = new RestRequest(responseData.Data.NextLink); 
      request.AddHeader("Prefer", "odata.maxpagesize=500"); 
      responseData = await client.ExecuteGetTaskAsync<ODataResponse<List<Transaccion>>>(request); 
      transactions.AddRange(responseData.Data.Value); 
     } 

     return transactions; 
    } 

一次我執行第一「 ExecuteGetTaskAsync「,我得到我的例子和預期的NextLink屬性,指向我需要檢索的下一組實體。然而,當我嘗試執行下一個RestRequest時,我沒有得到一個JSON作爲響應,而是一個對應於重定向的Html頁面,我可以在其中讀取錯誤消息「」。

這很奇怪,因爲第一次調用可以正確完成,因爲Restclient已被正確驗證。

發生了什麼事?我如何在.Net中使用Dynamics CRM進行分頁並使用NextLink?

回答

0

odada nextlink返回下一個請求的完整URL,因此您需要解析它以僅獲取/ api/**部分。

1

在我的情況下@ odata.nextLink中的URL有一個錯誤。

究竟是怎麼回事:

http://[Organization URI]/api/data/v8.2/[entity]/(68e95f08-d372-e711-966b-defe0719ce9e)/[relation entity]?$select=ne_name 

而且沒有工作,但這並:

http://[Organization URI]/api/data/v8.2/[entity](68e95f08-d372-e711-966b-defe0719ce9e)/[relation entity]?$select=ne_name 

沒有 「/」[實體]之間(ID