我正在实现一个Silverlight项目,我必须在其中访问数据库并使用WCF从表中获取结果。源表包含超过百万条记录。
我在获取记录方面没有任何问题。但问题是,我不想等到它循环所有记录。我想返回数据的子集,以便最终用户不必等待很长时间。是否可以发送原始数据的多个子集?
答案 0 :(得分:1)
请考虑使用WCF RIA DomainDataSource。它具有许多优点,例如通过分页,过滤,分组的分页数据集。
使用此控件的明显好处是,只有通过频道通过域上下文的RIA服务获取分页/过滤/分组数据。它包含简单的配置。
答案 1 :(得分:0)
是的,当然。你为什么要首先遍历所有记录?您应该使用像Entity Framework这样的东西充当您的映射器,并将您的数据库模式转换为类对象。
然后,您还可以使用linq来控制您自己的分页方法,使用skip
和take
。
您还可以使用各种数据寻呼机控件来为您处理分页。
基本上你可能做的最糟糕的事情就是亲自手动迭代记录并立即恢复所有记录。