2010-09-08 73 views
0

我需要創建WebMethod從數據庫獲取一些數據並將其返回給客戶端。從WebMethod返回分頁結果?

現在,假設數據量是巨大的,所以我想採取和返回數據的部分。

Webmethod有沒有什麼方法可以使用yield return?

據我所知,沒有辦法在WebMethods中返回泛型類型,但我也無法使用非泛型IEnumerable。

我該如何做到這一點?

回答

2

不,您不能從WebMethod收益。但是,你可以添加兩個參數來調用該方法允許分頁結果:

public string[] GetResults(string someQuery) 
{ 
    var results = new List<string>(); 

    // Fill Results 

    return results.ToArray(); 
} 

變爲:

public string[] GetResults(string someQuery, int pageNum, int pageSize) 
{ 
    var results = new List<string>(); 

    // Fill Results 

    return results.Skip(pageNum * pageSize).Take(pageSize).ToArray(); 
} 
+0

在此,他可能要揭露一個值,表示結果的數量也有在總結果集。另外,從Web服務的角度來看,他可能不希望頁面大小成爲用戶提供的值,而是服務的限制(或者至少測試上限,不希望客戶端嘗試一次獲得十億個結果)。 – 2010-09-08 17:35:54