Ошибка Entity Framework 4: на объект сущности нельзя ссылаться несколькими экземплярами IEntityChangeTracker - PullRequest
0 голосов
/ 27 октября 2010

Я использую EF4 впервые и принял стратегию UnitofWork (DataContext) для View. Однако у меня возникают проблемы и я обращаюсь за советом.

У меня есть окно, в котором отображается список рабочих станций, когда я нажимаю кнопку редактирования, у меня появляется другое окно, в котором отображается выбранная рабочая станция для редактирования.

Представление списка и представление редактирования используют свои собственные UnitOfWork, выбранная рабочая станция передается в представление редактирования, однако когда я пытаюсь сохранить рабочую станцию ​​в представлении редактирования, я получаю следующее:

На объект сущности нельзя ссылаться несколькими экземплярами IEntityChangeTracker

Я знаю, что это потому, что объект рабочей станции, через который я прошел в представление редактирования, имеет связанный с ним контекст данных.

Как мне справиться с этим ??

1 Ответ

1 голос
/ 27 октября 2010

Три варианта:

  1. Представление редактирования может повторно выбрать рабочую станцию ​​из ее собственного контекста на основе PK объекта из другого представления.
  2. Вы можете Detach рабочую станцию ​​из списка, а затем Attach до представления редактирования.
  3. Если представление списка доступно только для чтения, вы можете использовать MergeOption.NoTracking, чтобы контекст вообще не отслеживал изменения. Вам все еще нужно будет прикрепить его к контексту редактирования.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...