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

EF6 ToListAsync does not run async but blocks the thread

为了提高我的页面性能,我想 运行 一些异步查询。
我升级到 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 毫秒,这意味着调用是同步执行的而不是异步执行的。

任何人对我做错的原因或什么有一些见解?

Anyone got some insight in the why or what I could be doing wrong?

这是应用程序中对 EF 的第一次调用吗?您能否为 EF 模型的内部表示的一次性构建计时?

对于更复杂的 EF 模型,第一次调用的开销很大。但这是一次性的(每个应用域)成本。

最好为多个调用计时(然后丢弃最短和最长的时间)。