gpt4 book ai didi

entity-framework - 无法附加分离的实体 : "An object with the same key already exists in the ObjectStateManager"

转载 作者:行者123 更新时间:2023-12-03 12:17:06 27 4
gpt4 key购买 nike

我正在尝试将实体附加到 ObjectContext。
当我这样做时,会引发以下 InvalidOperationException:

An object with the same key already exists in the ObjectStateManager.
The ObjectStateManager cannot track multiple objects with the same key.

我检查了对象状态管理器并且该项目不存在:
//Data context is actually the object context.
ObjectStateEntry contact;
while ( //Should only work once since it should be true if the item was attached
!DataContext.ObjectStateManager.
TryGetObjectStateEntry(Contact, out contact)
)
DataContext.Attach(Contact); //Here is the exception thrown.

或者看看这个抽象的例子,告诉我它是否有意义:
EntityState state = Contact.EntityState; //Detached

DataContext.Attach(Contact); //Throws the exception.
DataContext.AttachTo("Entities.Contacts", Contact); //Throws the Exception

var detached = DataContext.ObjectStateManager.
GetObjectStateEntries(EntityState.Detached);
//InvalidArgumentException - detached entities cannot be in the obj state mgr

VB中的答案也受到欢迎。

最佳答案

您的联系人实体是否有两个具有相同 EntityKey 的子实体? ?例如,是否可以从 Contact 实体获取具有相同键的两个 Address 实体?

如果您指定 MergeOptions.NoTracking上下文将愉快地返回一个分离的对象图,其中包含具有相同键的实体。但是,当您附加相同的对象图时,System.InvalidOperationException将被抛出。

我建议您查看附加到上下文的整个对象图,并检查其中是否存在具有重复键的对象。

关于entity-framework - 无法附加分离的实体 : "An object with the same key already exists in the ObjectStateManager",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1131779/

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