Asp.net mvc SaveChanges上的DbUpdateException持续引发

Asp.net mvc SaveChanges上的DbUpdateException持续引发,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,在使用EntityFramework6.0数据库首先访问数据开发Asp.NETMVC5时,我遇到了奇怪的异常 首先,当我尝试删除记录时,会在SaveChanges上抛出一个DbUpdateException: The DELETE statement conflicted with the REFERENCE constraint "ForeignKeyName". (...) The statement has been terminated. 然后,我们的ExceptionFilter会

在使用EntityFramework6.0数据库首先访问数据开发Asp.NETMVC5时,我遇到了奇怪的异常

首先,当我尝试删除记录时,会在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 post)相关,但我在发行版中遇到了相同的问题


任何帮助都将不胜感激。

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

或回滚对上下文所做的更改我选择了2d选项并编写了回滚方法(cf.)。谢谢,我没有意识到在处理异常后必须清除实体。