Я пытаюсь клонировать / скопировать объект сущности и вставить его в БД.Я использую Entity Framework.
Я нашел несколько похожих вопросов здесь и на других форумах.Хотя точная проблема, ни одно из решений не сработало для меня.
Application orginalApp = new Application().GetById(origAppId);
Application clonedApp = orginalApp.Clone<Application>(); //uses DataContractSerializer
DataBaseContext.Current.Detach(orginalApp); // Current is a property which returns Database context which is stored in httpcontext.current.items
clonedApp.EntityKey = null; // tried with and without this
clonedApp.Application_Id = 0; // tried with and without this. This is the primary key
clonedApp.Application_Name += " (clone)";
clonedApp.Create(); //The usual Addobject and SaveChange()
Это выдает следующую ошибку:
Объект с таким же ключом уже существует в ObjectStateManager.ObjectStateManager не может отслеживать несколько объектов с одним и тем же ключом.
Я попытался проверить наличие объекта в диспетчере состояний объектов.
DataBaseContext.Current.ObjectStateManager.GetObjectStateEntry(clonedApp)
Это дает мне Null.
* Хотя я не смог найти решение, нашел обходной путь для требования с помощью отражения. *