我在使用EF Core时遇到了一个错误,我的一些调用使用了相同的dbContext,并且得到了一个类似于 "Error with Multiple Tasks Running Concurrently on Same DbContext "的错误,但是由于代码库的大小,我很难判断代码的哪些部分导致了这个错误。有什么好的方法可以调试这种类型的错误吗?我试着寻找没有被等待的代码,但无济于事。任何帮助都是非常感激的。
有什么好办法可以调试这种类型的错误吗?
我不知道有什么简单的解决方法,没有。
我试着找过没有等待的代码,但是没有用。
这种错误通常是由三种情况之一引起的。
Task.WhenAll
,当每个并发任务共享同一个DbContext的时候。这就是为什么EF提供了 async
API,它同步调用,所以它们不会在需要的时候同时运行。只要把每一个非async
呼叫 async
版本,你的问题就会消失。
你的具体问题的答案是,"所有的"。