我有一个 WCF 服务,它具有返回列表的函数,例如返回客户列表的函数
[OperationContract]
IList<Customer> GetCustomers();
我的 ASP.NET 页面可能会:
var top10Customers = Model.GetCustomers().Take(10);
var first10Customers = Model.OrderBy(c => c.ID).Take(10);
据我了解,以下代码将从 WCF 服务返回所有客户,然后应用OrderBy
和Take(10)
一次返回整个数据集似乎效率低下,尤其是 WCF 服务可能驻留在与 ASP.NET 网站不同的机器上。在这种情况下,我怎样才能最好地分页结果集或允许对其进行 LINQ 操作?
我现在可以看到的唯一选项是向函数添加分页选项,但是一直重写这段代码似乎效率低下:
[OperationContract]
IList<Customer> GetCustomers(int from, int numResults);