我正在学习 EFCore 和IAsyncEnumerable
(现在使用 .net 5 和所有期望)并且我正在努力理解await foreach
,因为在我所做的一个测试用例中阻止了执行(或者在我看来)
static async Task Main()
{
await Test().ConfigureAwait(false);
Debug.WriteLine("this should happen before, isn't it?");
Console.ReadKey();
}
static async Task Test()
{
using var ctx = new MyContext();
var testDbset = ctx.Entries;
await foreach (var entry in testDbset.ConfigureAwait(false))
{
Console.WriteLine(entry.ToString());
}
}
问题是“之前”句子写在最后,甚至没有写在中间;并且控制台突然被完全填满了。上下文正在查询 localsql 数据库。有什么我不明白的吗?