Я использую Silverlight4 и Риа Сервис:отклонять конкретный удаленный элемент из DomainContext
визуализации у нас есть таблица (так называемый «MyTable») с 3 записей (1, 2, 3), я просто написал следующие коды где-то в моем приложении:
CurrentItem = 1;
MyContext.MyTables.Delete(CurrentItem);
CurrentItem = 2;
MyContext.MyTables.Delete(CurrentItem);
по некоторым причинам, прежде чем нажать кнопку «Сохранить», я хочу, чтобы отклонить первый удаленный элемент (1), но по-прежнему хочу удалить вторую (2) .it означает, что я не могу использовать:
MyContext.RejectChanges()
Потому что он будет отвергать все изменения (в том числе удаленного элемента, который, что я хочу, чтобы удалить его), так что я, хотя, используя IRevertibleChangeTracking может решить мой вопрос .Something так:
((IRevertibleChangeTracking) MyItem).RejectChanges();
Но перед использованием этого интерфейса, Мне нужно получить доступ к удаленному элементу. Во-первых, он пытался получить его через MyContext.MyTables, но он не содержит удаленные записи, так что я пытался получить его EntityChangeSet:
EntityChangeSet Changes = MyContext.EntityContainer.GetChanges();
MyTable DeletedItem = Changes.First<MyTables>(e => e.ID = 1) ;
А потом я IRevertibleChangeTracking:
((IRevertibleChangeTracking) DeletedItem ).RejectChanges();
Но после Running, эта строка кода не изменила состояние записи, и она была сохранена как «Deleted», поэтому нажав кнопку «Сохранить», она была удалена из базы данных физически !!!! Кажется, IRevertibleChangeTracking не работает для удаленных/добавленных элементов (он просто работает для модифицированных элементов).
Итак, есть ли способ отклонить определенный удаленный элемент из DomainContext.
Спасибо,
Добро пожаловать в SO, пожалуйста, уделите несколько минут, чтобы прочитать FAQ и документацию Markdown (полезный synposis, который доступен в правом поле при редактировании вопроса). – AnthonyWJones