gpt4 book ai didi

asp.net-mvc - SaveChanges 上的 DbUpdateException 不断抛出

转载 作者:行者123 更新时间:2023-12-05 05:26:05 26 4
gpt4 key购买 nike

我在使用 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;
}

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

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

如有任何帮助,我们将不胜感激。

最佳答案

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

关于asp.net-mvc - SaveChanges 上的 DbUpdateException 不断抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com