gpt4 book ai didi

integrity - 无法在循环关系上强制引用完整性

转载 作者:行者123 更新时间:2023-12-02 19:57:28 25 4
gpt4 key购买 nike

当我在 MVC 应用程序中保存数据时,这是错误消息

对数据库的更改已成功提交,但更新对象上下文时发生错误。 ObjectContext 可能处于不一致的状态。内部异常消息:在强制执行引用完整性约束时检测到循环关系路径。无法在循环关系上强制引用完整性。

最佳答案

我过去在使用 Entity Framework 时遇到过这个问题,当时:

  1. 打开上下文#1
  2. 读取对象#1
  3. 关闭上下文#1
  4. 执行一些操作并创建对象 #2,该对象是对象 #1 的子级并引用对象 #1
  5. 打开一个新上下文,将对象 #2 添加到其 DbSet 和 SaveChanges

由于在新上下文中未跟踪对象 #1 的状态,因此给出循环引用警告。

要解决此问题,请尝试使用 DbSet(Of T).Attach 方法,如下面的代码所示:

Using ctx = New AtlasEntities
modelDefinition = Await ctx.ModelDefinitions.First(Function(f) f.Id=Id)
End Using

ModelResult = modelDefinition.DoSomeWork()

Using ctx As New AtlasEntities
ctx.ModelDefinitions.Attach(modelDefinition)
ctx.ModelResults.Add(ModelResult)
Dim success = Await ctx.SaveChangesQuickly.ConfigureAwait(False)
End Using

关于integrity - 无法在循环关系上强制引用完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36077241/

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