我有一个使用LINQ to SQL连接数据库的应用程序。我在使用LINQ to SQL返回正确的新更新数据时遇到问题。
发生的事情是,我更改了UI上的字段,LINQ to SQL生成的更新语句,并将新数据存储在数据库中。但是,LINQ to SQL在此之后不断返回旧数据,我必须停止并重新启动IIS以获取新的更新数据。
更新
请注意,旧数据从LINQ返回到SQL。
有什么想法吗?
答案 0 :(得分:5)
由于Linq to SQL处理缓存的方式,有两种情况可能导致奇怪的行为:
DataContext
。 DataContext
旨在用于一个“工作单元”,其中“工作单元”基本上是让DataContext
生活的最短时间。请参阅MSDN page。DataContext
s。它们将维护单独的缓存,因此使用一个DataContext
进行的更改可能不会反映在从其他人检索的数据中。您可以通过设置ObjectTrackingEnabled
关闭缓存,这将强制解决问题。否则,此处描述了一些管理并发DataContexts
的技术:How to: Manage Change Conflicts 答案 1 :(得分:0)
这听起来像是在使用某种缓存,也许是页面缓存?如果您可以通过重新启动应用程序来检索更新数据的唯一方法,那么您的数据必须依赖于应用程序生命周期。