Ответ 1
Как вы "освежаете"? Если вы знаете, что значение изменилось, вы можете обновить значение кэшированного контекста с помощью ServerWins или ClientWins:
http://msdn.microsoft.com/en-us/library/vstudio/bb738618 (v = vs .100).aspx
// Resolve the concurrency conflict by refreshing the
// object context before re-saving changes.
context.Refresh(RefreshMode.ClientWins, orders);
Однако реальный вопрос сводится к тому, когда и почему это произойдет в первую очередь, что связано с жизнью контекста. Возможно, вы могли бы использовать один и тот же контекст? Помните, что SQL Server и т.д. Имеют свой собственный механизм кэширования, и, таким образом, Entity Framework не единственная рыба в пруду предметов, пытающаяся сделать некоторое кеширование.
Из следующей ссылки мы собираем несколько советов, которые, если вы будете следовать, вы, вероятно, не столкнетесь с этой проблемой. http://msdn.microsoft.com/en-us/data/jj729737.aspx
- При загрузке большего количества объектов потребление памяти в контексте может быстро увеличиваться
- Шансы на работу в concurrency связаны с увеличением срока службы
- При работе с веб-приложениями используйте экземпляр контекста для запроса
- При работе с Windows Forms используйте контекст для формы