EF 6 - 在SaveChangesAsync方法中异步执行SQL命令会抛出NotSupportedException

时间:2015-11-06 09:38:06

标签: c# .net entity-framework async-await entity-framework-6

我已经覆盖了SaveChangesAsync的{​​{1}}方法来调用一堆存储过程。首先,我调用DbContext的{​​{1}},之后我为每个更改的实体执行存储过程。

等待所有异步方法调用。

这是EF引发的例外:

SaveChangesAsync

这是我的代码:

DbContext

为什么EF会抛出此异常?

1 个答案:

答案 0 :(得分:3)

查看异常,您可以看到您在Task.WhenAll中调用WriteAuditsParallelAsync,这意味着您正在同时启动多个异步操作,并异步等待所有这些操作完成。

你不能在EF上下文中同时执行多个单独的操作,这就是它抛出的原因。

您可以通过一次启动和等待它们来顺序执行这些操作来解决这个问题。