SaveChanges上的DbUpdateException不断抛出

时间:2015-02-02 16:29:52

标签: asp.net-mvc entity-framework

我在使用Entity Framework 6.0数据库开发Asp.Net Mvc 5时遇到了奇怪的异常,首先访问数据。

首先,当我尝试删除记录时,在SaveChanges上抛出DbUpdateException:

The DELETE statement conflicted with the REFERENCE constraint "ForeignKeyName". 
(...)
The statement has been terminated.

然后我们的ExceptionFilter捕获此异常:

public void OnException(ExceptionContext filterContext)
{
    // Opening popup
    filterContext.ExceptionHandled = true;
}

到目前为止,一切都很好。但是,如果之后再次调用SavesChanges方法来更新另一个实体,则同样的异常会继续抛出。

我教过它与调试模式有关(cf Exception seems to be thrown repeatedly when debugging)但我在发布时遇到了同样的问题。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

在抛出删除异常后,您可能正在重用相同的DbContext实例。如果SaveChanges()失败,DbContext.ChangeTracker仍会跟踪更改。您必须创建一个新的DbContext实例或清除更改跟踪器。

相关问题