我正在开发一种在非常大的表中搜索信息的方法。由于我没有ORDER BY
在查询中使用或任何特殊的东西(只是一个简单的SELECT id,description FROM complain WHERE description like 'YOUR TEXT HERE'"
),我希望通过返回批量结果来提供更动态的用户体验。这类似于在 Management Studio 中运行查询。
一些细节,我的调用堆栈不大,但并非所有内容都在同一个方法中。有buttonSearchClick
,performCleanSearch
并且searchComplainBasedOnDetailInfo
每一个都在不同的层(分别为接口、SearchBLL 和 SearchDAL)。
我考虑过创建一个异步方法来填充类似 aList<Complain>
但看起来不那么干净的东西。我将不得不进行 3 层异步。有没有人对如何实现这一点有更好的想法?或者这是最好的方法吗?
Edit1:我已经设法在连接字符串上使用 SqlCommand.BeginExecuteReader 和异步处理来从查询中获取结果,因为它们出现了......现在我必须想办法让我的 DAL 方法异步所以上层也可以异步获取结果......我正在考虑实现某种缓冲区......也许是一个队列......
Edit2:我不是在寻找分页解决方案或 twitter 之类的(滚动并搜索新结果),因为我知道用户将不得不阅读我获取的所有信息......