Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法找到在同一DbContext上运行的导致错误的任务?_C#_Entity Framework_.net Core - Fatal编程技术网

C# 有没有办法找到在同一DbContext上运行的导致错误的任务?

C# 有没有办法找到在同一DbContext上运行的导致错误的任务?,c#,entity-framework,.net-core,C#,Entity Framework,.net Core,我在EF Core中遇到了一个错误,其中我的一些调用使用了相同的dbContext,并且得到了一个类似于“多个任务在同一dbContext上并发运行时出错”的错误,但是由于代码库的大小,我很难判断代码的哪些部分导致了此错误。有没有一个好的方法来调试这种类型的错误?我试着寻找没有等待的代码,但是没有用。非常感谢您的帮助。这就是为什么EF提供了asyncAPI,它可以同步调用,这样调用就不会在需要的时候运行。只需将每个非async调用替换为async版本,您的问题就会消失 你具体问题的答案是“全部”

我在EF Core中遇到了一个错误,其中我的一些调用使用了相同的dbContext,并且得到了一个类似于“多个任务在同一dbContext上并发运行时出错”的错误,但是由于代码库的大小,我很难判断代码的哪些部分导致了此错误。有没有一个好的方法来调试这种类型的错误?我试着寻找没有等待的代码,但是没有用。非常感谢您的帮助。

这就是为什么EF提供了
async
API,它可以同步调用,这样调用就不会在需要的时候运行。只需将每个非
async
调用替换为
async
版本,您的问题就会消失

你具体问题的答案是“全部”

有没有一个好的方法来调试这种类型的错误

我不知道有什么好办法,不

我试着寻找没有等待的代码,但是没有用

这种错误通常由以下三种原因之一引起:

  • 未等待的异步代码
  • DbContext实例的作用域不正确,因此依赖项注入系统最终会在您不期望的情况下共享实例
  • 执行异步并发的代码,例如,Task.whalll,当每个并发任务共享相同的DbContext时

感谢您的回复。感谢您的回复