使用 EF6 的异步查询结果
本文关键字:查询 结果 异步 EF6 使用 | 更新日期: 2023-09-27 18:33:18
我有一个查询,结果集为 300 - 500。我知道它不是很多项目,但计算确实需要很长时间,大约需要 60 到 90 秒......
当我在管理工作室上运行 EF6 生成的查询时,我每秒得到 2-3 个新行。
我想在我的网格中复制这种行为,例如:在网格可用时向网格提供新行。
有没有办法使用 EF6 执行此操作?
使用"异步"关键字/方法强制整个操作挂起...我曾经使用BeginExecuteReader +回调和SqlConnection上的一些设置来做到这一点...
似乎没有很多关于它的文档,但实体框架 6 似乎添加了 ForEachAsync 扩展方法:
http://msdn.microsoft.com/en-us/library/system.data.entity.queryableextensions.foreachasync(v=vs.113).aspx
在此博客中找到的代码示例
using (var context = new DataContext()) {
await context.Manufacturers.ForEachAsync(m => Console.WriteLine("{0} : {1}", m.Name, m.Country));
}
在项目回调中,您可以在结果可用时将结果发送回 UI。