实体框架中的异步数据加载?

时间:2009-11-16 02:02:34

标签: entity-framework asynchronous executequery

有没有人听说过异步执行EF查询?

我希望我的项目控件在表单加载时正确填充,用户应该能够查看列表,而其余项目仍在加载。

可能通过在同一连接中自动拆分项目批量执行(即每次执行的查询很少)。

我向Microsoft发布了一项功能建议,请与您的想法分享。

2 个答案:

答案 0 :(得分:1)

不想听起来像商业广告,但我注意到最新的DevExpress网格在其WPF网格中提供了这样的功能。基本上,您希望首先加载 visible-count 项目,然后在后台线程中加载其余项目,以便您的UI不会冻结。后台线程可能应该一次加载另一个页面并使它们可供UI线程使用。

这是你想要仔细考虑的事情,并确保你做对了,或者只是买一个为你努力工作的控制。

答案 1 :(得分:0)

我从您的链接中获取这是一个网络应用程序。这是对的吗?

在渲染开始之前,查询必须完成并返回数据。 EF功能对您没有帮助。相反。看看将您的流程分解为可以一次完成的几个流程。

请记住,如果没有渲染HTML,ASP.NET无法返回对浏览器的响应。

让我假设您正在执行单个查询,将结果返回并将其显示到页面。

最佳选择:选择结果。如果您有4000条记录,则显示前50条记录。如果您向用户显示200条以上的记录,则无法消化这么多信息。

如果这不符合您的需求,请查看针对50个结果触发一个查询。对剩余的记录进行Ajax调用,然后从(合理大小的)块中构建UI。