我们使用自定义数据访问层从数据库中读取我们的域对象(客户、订单等)。此数据访问层不支持分页或排序。
我们希望使用 WCF RIA 服务将部分数据(例如客户)发布到 Silverlight 客户端。在客户端中,我们想要显示一个带有分页的数据网格。
现在,在我们的 RIA DomainService 中,我们将有一个函数,例如
IQueryable<Customer> GetCustomers()
{
List<Customer> customers = OurPersisteceLayer.GetAllCustomers();
return customers.AsQueryable()
}
此函数将从数据库中读取所有客户记录。我假设 RIA 在这种情况下无法进行任何形式的服务器端分页 - 当调用该函数时,我们将始终读取所有客户。
我的问题是:
RIA 会在客户端缓存客户列表(并且只调用一次 GetCustomers),还是会在每次用户移动到数据网格中的下一页时执行操作?
在我的场景中,执行该操作可能需要 5 秒,如果执行一次是可以接受的,但如果每次用户想要移动到数据网格中的新页面时需要 5 秒,则不是。
在使用 RIA 访问遗留数据访问层并且您想使用分页时,是否有一些好的解决方案/模式/方法可以使用?