我有一个用户和管理员部分的应用程序。如果管理员在sql datasource的帮助下更新数据,那么它会更新数据库。但是,当我们使用linq查询检索数据时,它会显示其旧值而不是更新值。
一段时间后,linq查询会自动显示正确的值。
我认为它缓存了价值,但我发现自己无能为力。请帮帮我。
答案 0 :(得分:0)
确保您有效地使用DataContext
(理想情况下,每单位工作一次)。
每次更新后,请务必致电DataContext.SubmitChanges();
将更改提交回数据库。
另请注意,您在更改添加到其他上下文和调用SubmitChanges()
之间实例化的任何上下文都不会反映这些更改。
答案 1 :(得分:0)
当你说
时当我们使用linq查询检索数据时
你的意思是你再次调用你的select方法,还是你在内存对象中使用当前的?
在任何一种情况下,您始终可以使用以下内容刷新实体
Context.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity)