Asp.net mvc SaveChanges上的DbUpdateException持续引发
在使用EntityFramework6.0数据库首先访问数据开发Asp.NETMVC5时,我遇到了奇怪的异常 首先,当我尝试删除记录时,会在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会
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.)。谢谢,我没有意识到在处理异常后必须清除实体。