【问题标题】:Linq update problemlinq更新问题
【发布时间】:2009-10-09 19:49:35
【问题描述】:

我有一个包含用户和管理部分的应用程序。如果管理员在 sql 数据源的帮助下更新数据,那么它就更新了数据库。但是,当我们使用 linq 查询检索数据时,它会显示其旧值而不是更新后的值。

一段时间后,linq 查询会自动显示正确的值。

我认为它缓存了价值,但我发现自己很无奈。请帮我解决这个问题。

【问题讨论】:

    标签: asp.net linq


    【解决方案1】:

    当你说

    当我们使用 linq 查询检索数据时

    您的意思是再次调用您的选择方法还是使用当前内存对象?

    在任何一种情况下,您都可以随时刷新实体:

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

    【讨论】:

      【解决方案2】:

      确保您有效地使用您的DataContext(理想情况下每个工作单元使用一个)。

      每次更新后,请务必致电 DataContext.SubmitChanges(); 将更改提交回数据库。

      另外请注意,您在将更改添加到另一个上下文和调用 SubmitChanges() 之间实例化的任何上下文都不会反映这些更改。

      【讨论】:

      • 谢谢当我使用 sql 数据源更新数据时,我遇到了这个问题,否则它工作正常。但它会更新数据库。
      • 确保在使用 Sql Datasouce 更新数据之前没有创建 DataContext(如果您使用 Linq 检索数据,您也应该使用它来更新数据)。
      猜你喜欢
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多