顧客のリストを返す関数など、リストを返す関数を備えた WCF サービスがあります。
[OperationContract]
IList<Customer> GetCustomers();
私のASP.NETページは次のことを行うかもしれません:
var top10Customers = Model.GetCustomers().Take(10);
var first10Customers = Model.OrderBy(c => c.ID).Take(10);
次のコードが WCF サービスからすべての Customers を返し、THEN が適用されることを理解していますOrderBy
。Take(10)
特に、WCF サービスが ASP.NET Web サイトとは別のマシンに存在する可能性があるため、データ セット全体を一度に返すのは非効率的です。どのような場合、どのようにして結果セットをページングしたり、LINQ 操作を許可したりできますか?
現時点で確認できる唯一のオプションは、関数にページング オプションを追加することですが、このコードを常に書き直すのは効率が悪いようです。
[OperationContract]
IList<Customer> GetCustomers(int from, int numResults);