我有一个用户和管理员部分的应用程序。如果管理员使用sql数据源更新数据,那么它会更新数据库。但是,当我们用linq查询检索数据时,它显示的是旧值而不是更新后的值。Linq更新问题
经过一段时间,linq查询会自动显示正确的值。
我认为它的缓存价值,但我发现自己很无奈。请帮我解决一下这个。
我有一个用户和管理员部分的应用程序。如果管理员使用sql数据源更新数据,那么它会更新数据库。但是,当我们用linq查询检索数据时,它显示的是旧值而不是更新后的值。Linq更新问题
经过一段时间,linq查询会自动显示正确的值。
我认为它的缓存价值,但我发现自己很无奈。请帮我解决一下这个。
当你说
当我们与LINQ查询
检索数据你的意思是你再次拨打您的选择方法或者您使用的是当前内存中的对象?
在这两种情况下,你可以随时刷新的实体:
Context.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity)
确保您有效使用DataContext
(理想情况下每单位工作一个)。
每次更新后,请确保您致电DataContext.SubmitChanges();
将更改提交回数据库。
另外请注意,将您的更改添加到另一个上下文并调用SubmitChanges()
的任何上下文都不会反映这些更改。
感谢 当我更新与SQL数据源的数据只有那个时候我否则得到这个问题,它的工作的罚款。 但它更新数据库。 – 2009-10-09 20:04:54
但linq查询显示旧数据 – 2009-10-09 20:05:42
请确保您在使用Sql Datasouce更新数据前未创建DataContext(如果您使用Linq来检索数据,则应该使用它来更新数据)。 – 2009-10-09 20:07:10