问题描述
|
我正在尝试确定执行分页的最佳方法。
我有两种使用SubSonic捕获数据的选项:
1)itemDatumCollection.LoadAndCloseReader(sp.GetReader());
要么
2)itemsDataSet = sp.GetDataSet();
两者都访问相同的存储过程。是否有使用LoadAndCloasReader()进行分页的简单方法?
我可以通过客户端上的GetDataSet加载所有数据-说4000行,但似乎是不必要的,当我使用LoadAndCloseReader()时,此数据量超出了我的WCF绑定参数(我认为设置得很好),因为它返回一个复杂的宾语:
maxBufferSize=\"20000000\" maxBufferPoolSize=\"524288\" maxReceivedMessageSize=\"20000000\"
所以我猜了几件事:
1)GetDataSet()返回数据的速度更快-我不需要复杂的集合对象(编码时很好)?
2)如何使用Tsql sproc执行分页?
谢谢。
解决方法
我采用了一种在MVVM中使用的方法,而不是在MVC中使用的方法。我预先加载了所有数据,然后允许用户使用jQuery分页控件对数据进行分页,从而最大程度地减少了对数据库的回叫。初始响应需要更长的时间(但限制为100条记录),但是为用户提供了快速的分页。
我使用了简单寻呼机jQuery插件。