Я прочитал несколько вопросов и текстов по прикреплению, но они, похоже, пропустят некоторые подробности о том, как это работает. Например, я не знаю, почему происходит следующее:Когда экземпляры Entity автоматически привязаны к контексту?
MyContext c = new MyContext();
MyEntity e = new MyEntity();
/* some local edits in e */
c.MyEntity.Add(e); // Works fine
Но если я изменить его в зависимости от другого класса (который не создает новый экземпляр), я получаю IEntityChangeTracker исключение:
MyContext c = new MyContext();
MyEntity e = new MyEntity();
e = ViewModelClass.SomeFunctionWhichAltersAnExistingEntityInstance(e);
c.MyEntity.Add(e); //IEntityChangeTracker "multiple instances" exception
Большинство ответов на эту тему говорят, что это происходит, когда объект привязан к нескольким контекстам.
Если это то, что происходит, когда и почему экземпляр класса сущности автоматически привязывается к контексту (и откуда этот контекст)?
О версии Entity используется: RuntimeVersion: v4.0.30319 Версия: 5.0.0.0
Вы задаете свойство основного ключа в своем методе? –
@GeorgeVovos Нет. Это идентификатор (1,1) – galmeida
Вы устанавливаете свойство Navigational внутри метода? Является ли код внутри метода таким же, как/*, локальными изменениями в e * /? Покажите нам метод, если вы можете –