EF6 ToListAsync不会运行异步但会阻塞该线程

为了提高我的页面性能,我想异步运行一些查询。
我升级到EF6,因为它通过公开异步方法本机支持此function。
我无法同时触发查询,所以我将我的代码简化为这个简单的例子:

var sw = new Stopwatch(); sw.Start(); var dummy = context.Set().Take(200).ToListAsync(); sw.Stop(); Logger.Debug("attempt nr 1 : " + sw.ElapsedMilliseconds); var result = await dummy; 

我的例外是秒表因为我正在等待稍后等待而立即停止。
然而,我的记录器表示秒表已经传递了5000毫秒,这意味着调用是同步而非异步执行的。

任何人都知道为什么或我可能做错了什么?

任何人都知道为什么或我可能做错了什么?

这是在应用程序中第一次调用EF吗? 你能为一次性构建EF模型的内部表示做准备吗?

使用更复杂的EF模型,第一次调用会产生大量开销。 但这是一次性(每个应用程序域)成本。

最好定时拨打一些电话(然后扔掉最短和最长的电话)。