我有一个查询,结果是300-500个结果集。我知道这不是很多项目,但计算起来确实需要很长时间,大约60到90秒.
当我在Management上运行EF6生成的查询时,每秒会得到2-3行。
我希望在网格中复制这种行为,例如:在网格可用时为网格提供新行。
是否有一种使用EF6来实现此操作的方法?
使用“异步”关键字/方法强制整个操作挂起.我以前用BeginExecuteReader +回调和SqlConnection上的一些设置.
发布于 2014-12-04 18:55:14
关于它的文档似乎不多,但实体框架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。
https://stackoverflow.com/questions/27301303
复制相似问题