"Это сработало для меня:
dataContext.customer.Context.Refresh(RefreshMode.StoreWins, item);
Где item
- объект клиента, который необходимо вернуть. "
Я сделал тесты с ObjectContext.Refresh в SQL Azure, и «RefreshMode.StoreWins» запускает запрос к базе данных для каждого объекта и вызывает утечку производительности. На основании документации Microsoft ():
ClientWins: изменения свойств, внесенные в объекты в контексте объекта, не заменяются значениями из источника данных. При следующем вызове SaveChanges эти изменения отправляются в источник данных.
StoreWins: изменения свойств, внесенные в объекты в контексте объекта, заменяются значениями из источника данных.
ClientWins также не является хорошей идеей, потому что запуск .SaveChanges будет фиксировать отклоненные изменения в источнике данных.
Я пока не знаю, каков наилучший способ, потому что удаление контекста и создание нового вызывает исключение с сообщением: «Основной поставщик не удалось открыть», когда я пытаюсь выполнить любой запрос в созданном новом контексте.
С уважением,
Энрике Клаусинг