Tôi đang cố đính kèm một thực thể vào ObjectContext. Khi tôi làm như vậy, InvalidOperationException sau được ném:Không thể đính kèm một thực thể tách rời: "Một đối tượng có cùng khóa đã tồn tại trong ObjectStateManager"
An object with the same key already exists in the ObjectStateManager.
The ObjectStateManager cannot track multiple objects with the same key.
Tôi đã kiểm tra trong quản lý nhà nước đối tượng và mục không tồn tại:
//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.
Hoặc nhìn vào ví dụ trừu tượng này và cho tôi biết nếu nó có ý nghĩa:
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
Câu trả lời trong VB cũng được hoan nghênh.
Im phải đối mặt với vấn đề tương tự, bạn có thể cung cấp ví dụ về cách bạn nhìn vào toàn bộ biểu đồ đối tượng mà bạn đang gắn vào ngữ cảnh và kiểm tra xem có đối tượng có khóa trùng lặp trong đó không? – Eduard