2009-10-09 4 views
0

У меня есть приложение с разделами пользователя и администратора. Если администратор обновляет данные с помощью sql datasource, то он обновляет базу данных. Однако, когда мы извлекаем данные с помощью запроса linq, он показывает свое старое значение, а не обновленное значение.Проблема с обновлением Linq

Через некоторое время запрос linq автоматически отображает правильное значение.

Я думаю, что он кэширует ценность, но я нахожу себя беспомощным. Пожалуйста, помогите мне с этим.

ответ

0

Когда вы говорите

, когда мы восстанавливаем данные с Linq запросом

Вы хотите сказать, вы звоните селекты методов снова или вы используете ток в объектах памяти?

В любом случае, вы всегда можете обновить сущность с:

Context.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity) 
0

Убедитесь, что вы используете DataContext эффективно (в идеале один на единицу работы).

После каждого обновления убедитесь, что вы вызываете DataContext.SubmitChanges();, чтобы вернуть свои изменения в базу данных.

Также имейте в виду, что любой контекст, который вы инициируете между вашими изменениями, добавленными в другой контекст, и вызовом SubmitChanges(), не будет отражать эти изменения.

+0

благодаря Когда я обновление данных с помощью SQL источника данных только, что время я получаю эту проблему иначе оборотный штраф. Но он обновляет базу данных. –

+0

, но запрос linq, показывающий старые данные –

+0

Убедитесь, что вы не создаете DataContext перед обновлением данных с помощью Sql Datasouce (и если вы используете Linq для извлечения данных, вы также должны использовать его для обновления данных). –

Смежные вопросы