У меня есть класс Customer, который включает класс Contact, в котором хранятся все контакты для этого конкретного клиента, поэтому они связаны с отношением внешнего ключа.
Вот мой сценарий: пользователь редактирует информацию о клиенте, включая контакты, а затем решает нажать кнопку «Отмена».Контакты связаны с сеткой, поэтому каждый раз, когда выполняется редактирование / добавление / удаление, он автоматически обновляет сущность «Контакт» в контексте кэшированной базы данных.Так как же мне откатить все изменения, сделанные пользователем в сущности «Контакт»?
Я попробовал следующее (после поиска ответов в Google):
public static void CustomerRollback(Customer customer)
{
dbContext.Refresh(System.Data.Objects.RefreshMode.StoreWins, customer);
dbContext.Refresh(System.Data.Objects.RefreshMode.StoreWins, customer.Contacts);
}
Но это не сработало,Есть еще идеи?Обратите внимание, что моя проблема заключается только в откате сущности «Контакты».Я думаю, что причина проблемы в первую очередь в том, что сетка автоматически обновляет кэшированные объекты.Поэтому, когда я пытаюсь отменить, EntityState для каждого контакта уже перешел в измененное состояние (EntityState.Added, EntityState.Deleted и т. Д.).Нужно ли мне перебирать контакты, проверять их свойство EntityState и что-то с ним делать?
Спасибо, Цезарь