0
我需要創建WebMethod從數據庫獲取一些數據並將其返回給客戶端。從WebMethod返回分頁結果?
現在,假設數據量是巨大的,所以我想採取和返回數據的部分。
Webmethod有沒有什麼方法可以使用yield return?
據我所知,沒有辦法在WebMethods中返回泛型類型,但我也無法使用非泛型IEnumerable。
我該如何做到這一點?
我需要創建WebMethod從數據庫獲取一些數據並將其返回給客戶端。從WebMethod返回分頁結果?
現在,假設數據量是巨大的,所以我想採取和返回數據的部分。
Webmethod有沒有什麼方法可以使用yield return?
據我所知,沒有辦法在WebMethods中返回泛型類型,但我也無法使用非泛型IEnumerable。
我該如何做到這一點?
不,您不能從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();
}
在此,他可能要揭露一個值,表示結果的數量也有在總結果集。另外,從Web服務的角度來看,他可能不希望頁面大小成爲用戶提供的值,而是服務的限制(或者至少測試上限,不希望客戶端嘗試一次獲得十億個結果)。 – 2010-09-08 17:35:54