【发布时间】:2015-07-08 08:57:12
【问题描述】:
为了提高页面性能,我想异步运行一些查询。
我升级到 EF6 是因为它通过公开异步方法本机支持此功能。
我无法同时触发查询,所以我将代码简化为这个简单的示例:
var sw = new Stopwatch();
sw.Start();
var dummy = context.Set<CA_Event_Person>().Take(200).ToListAsync();
sw.Stop();
Logger.Debug("attempt nr 1 : " + sw.ElapsedMilliseconds);
var result = await dummy;
我的例外是秒表会立即停止,因为我稍后会等待。
然而,我的记录器说秒表上已经过去了 5000 毫秒,这意味着调用是同步执行的,而不是异步的。
有人对我可能做错的原因或原因有所了解吗?
【问题讨论】:
-
EF 背后是什么数据库?因为,例如,SQL Compact 位不支持异步,所以会阻塞。
-
我使用的是 SQL Server 2008
标签: c# entity-framework asynchronous async-await ef-database-first