【发布时间】:2011-04-07 21:21:59
【问题描述】:
我的公司专门使用通过存储过程填充的原始、无类型数据集。我的任务是找到一种方法来检索非常大的结果集(分页)和获得延迟加载功能的方法(至少我认为这是延迟加载;老实说,我还在学习这些东西)所以我们不是一次拉回数万行,占用服务器资源。
我个人对 DataSet 不太熟悉,因为我尽可能避免使用它们,我宁愿在这里完全摆脱它们,但是说“更改所有内容以使用 LINQ/EF”并不是一个有效的答案,因为对管理没有商业价值(而且重做事情需要很长时间,所以这个想法会立即被否决)。
是否有一些资源可以让我使用标准的无类型数据集来获得这种相同的功能?
编辑:另外,我需要一个可以处理不使用存储过程的动态创建的 SQL 的解决方案。
【问题讨论】:
-
就术语而言,我倾向于使用“分页”来描述您需要的功能; “延迟加载”我用来描述更复杂的对象图/模型的部分初始加载,然后根据需要按需加载图的其他部分。 [我没有这方面的参考,所以可能只是我......]
-
顺便说一句,绝对避免 DataSets 就像避免
bool或int。 DataSet 就是这样 - 一个编写良好、100% 可靠、通用的数据库数据在内存中表示,它在许多不同的情况下都非常有用。但是,公平地说,我绝对不会将它们用于高流量的网站。 -
我一直使用延迟加载来表示“在我真正需要它之前不要执行它”,但是我的经理说的要求是“延迟加载”所以我在这里使用它: ) 关于 DataSets 我同意,但我认为有更好的解决方案,在少数情况下 DataSets 是比替代方案更好的选择。
-
“分页”是一种延迟加载形式 - 通常不这么称呼它(通常称为“分页”)。