EF.net Core异步数据加载到Observable中

时间:2019-07-03 22:36:01

标签: c# wpf entity-framework .net-core observable

我们在使用WPF应用程序时遇到了特殊情况。视图模型通过比平常慢的链接从数据库加载数据(使用ef.net)。将1000个行检索到DataGrid大约需要20秒,这种情况会使视图保持为空,直到加载了所有数据为止,此时所有数据立即都被转储到网格中。

所以问题是,我们能否以某种方式配置和/或使用某种方法来使ef.net异步返回空的Observable,然后将其随数据一起流式传输。然后,我们可以将可观察到的sourxe绑定到网格并放在一边。网上的很多资源都在断开服务流传输的上下文中讨论ef.net(例如,asp.net / res),而已将数据加载出去的内容很少,而在上下文内加载的情况则很少。

我希望将解决方案保留在ef.net的范围内,而无需将自定义解决方案依赖于ADO / etc游标。

1 个答案:

答案 0 :(得分:0)

  

我们能否以某种方式配置和/或使用某种方式来使ef.net异步返回一个空的Observable,然后将其随数据一起流式传输

否,除非EF实际流回了结果,但我想一旦从数据库中获取了所有记录,它就会返回所有记录。

您需要一个IObservable API才能执行此操作,但是EF不提供。您可能要做的就是查询更少的项目,将它们直接加载到DataGrid的可观察项或源集合中,然后查询更多项目。