【发布时间】:2016-05-26 10:35:06
【问题描述】:
在我的应用程序中,我想从 WCF 服务(作为 Windows 服务托管)返回一组对象,以在 WPF 应用程序中填充 DataGrid。集合中对象的数量从一个到几百不等,具体取决于调用的方法。
我很好奇处理从服务返回大量集合的“最佳”方式是什么。
以下是我看到的建议选项:
- 增加最大消息大小并一次性返回所有对象。这似乎是个坏主意,因为有时我可能需要返回超过 2GB 的数据。
- 对记录进行分页并重复调用该方法,直到检索到所有对象。我已经看到这个建议用于 ASP.NET 项目,但我不知道它对桌面应用程序的效果如何。
- 使用流。老实说,我不明白这是如何工作的,因为它似乎是用于传输大型单个对象而不是许多较小的对象。
- 用
yield关键字做某事,但这超出了我的想象,我无法理解它。 :-/
完成这项任务的最佳方法是什么,为什么?
【问题讨论】:
-
用户极不可能在单个数据网格中使用 2 GB 的数据。有几个 UI 选项(例如搜索、分页、无限滚动)可用于处理向用户呈现大型数据集。我会尝试从 UI 的角度解决问题,通过找到一种更好的方式将数据呈现给用户。场景本身(后端的大数据集,前端的用户)很常见。