RejectChanges для определенных объектов - PullRequest
5 голосов
/ 21 августа 2011

У меня возникла следующая проблема со службами RIA WCF: у меня есть таблица Customer и таблица Address . У клиента может быть 0 ... n адресов. Существует форма для редактирования клиента, с сеткой данных, которая отображает адреса. Вы добавляете / редактируете адрес в дочернем окне, нажимая Добавить / Редактировать . Теперь вот что:

Проблема в том, что пользователь всегда должен иметь возможность отменить изменения. Это не проблема , за исключением : если вы создаете нового клиента и добавляете адрес этому клиенту, то хотите изменить адрес, но хотите отменить , которые редактируют.

  • Вы не можете сделать RejectChanges для контекста, потому что это стерло бы адрес с клиентом.
  • Вы не можете использовать отдельные контексты, потому что тогда вы не можете установить отношение внешнего ключа.

Как бы вы, ребята, решили это?

Ответы [ 2 ]

6 голосов
/ 22 августа 2011

Сущность реализует IRevertibleChangeTracking для поддержки этого сценария. Поскольку он реализован явно, вам придется разыграть его. Следующий код будет работать.

((IRevertibleChangeTracking)address).RejectChanges();
0 голосов
/ 22 февраля 2012

Работает в случае редактирования, но не в случае нового ..

...