我有一个查询导致300 - 500结果集。我知道这不是很多项目,但它需要很长时间才能计算,比如60到90秒......左右 当我在Management studio上运行由EF6生成的查询时,我每秒会得到2-3个新行 我想在我的网格中复制此行为,例如:在网格可用时提供网格新行。
有没有办法用EF6做到这一点?
使用“async”关键字/方法强制整个操作挂起...我以前使用BeginExecuteReader +回调和SqlConnection上的一些设置来做...
答案 0 :(得分:2)
似乎没有很多关于它的文档,但似乎Entity Framework 6添加了ForEachAsync扩展方法:
上的代码示例using (var context = new DataContext()) {
await context.Manufacturers.ForEachAsync(m => Console.WriteLine("{0} : {1}", m.Name, m.Country));
}
在您的项目回调中,您可以在结果可用时将结果发送回用户界面。