Я получаю исключение
An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.
У меня есть объект, который отсоединен, а также имеет ключ в ObjectStateManager, это то, что я не понимаю. Как это возможно?
То, что я пытаюсь сделать, это прикрепить объект обратно к контексту, когда он возвращается от клиента (контроллер Asp MVC).
Если я сделаю это
db.MyEntity.Attach(myEntity);
Я получаю первое исключение.
Я знаю, что он отключен, потому что, когда я пытаюсь позвонить
db.MyEntity.Context.LoadProperty(myEntity, e => e.myProperty);
Я получаю исключение, что моя сущность отсоединена (что и должно быть, почему ключ в ObjectStateManager?).
Итак, чтобы подвести итог, я думаю, что у меня есть сущность, которая имеет ключ в ObjectStateManager и отсоединена. Как мне его прикрепить? Эм, я что-то упустил? Или я что-то недопонимаю?
Спасибо за любые предложения.
Edit:
Как сказал @Ladislav Mrnka, моя проблема в том, что я загружаю объект с одинаковым идентификатором в одной обработке запроса. Я делаю это, потому что я хочу, чтобы исходные значения объекта для сравнения, и если есть проблемы, я хочу отобразить его обратно пользователю, но мне нужно присоединить его, что является проблемой, потому что есть объект со старыми значениями, все еще присутствующими в ObjectStateManager. Я присоединяю эту сущность, потому что мне также нужно отображать ленивые свойства Loaded. Каков правильный подход, чтобы сделать это? Просто сделать новый запрос для сущности?