LINQ to SQL在更新后返回旧数据

Pin*_*ong 3 .net c# linq linq-to-entities linq-to-sql

我有一个使用LINQ to SQL连接到数据库的应用程序.我在使用LINQ to SQL返回正确的新更新数据时遇到问题.

发生的事情是,我更改了UI上的字段,LINQ to SQL生成的更新语句,并将新数据存储在数据库中.但是,LINQ to SQL在此之后不断返回旧数据,我必须停止并重新启动IIS以获取新的更新数据.

更新

请注意,旧数据从LINQ返回到SQL.

任何的想法?

Sea*_*n U 5

由于Linq to SQL处理缓存的方式,有两种情况可能导致奇怪的行为:

  1. 重复使用DataContext. DataContext意味着用于一个"工作单元",其中"工作单元"基本上是您可以通过让DataContext生活离开的最短时间.请参阅MSDN页面上的"备注"部分.
  2. 多个DataContext.它们将维护单独的缓存,因此使用其中的更改DataContext可能不会反映在从其他人检索的数据中.您可以通过设置关闭缓存ObjectTrackingEnabled,这将强制解决问题.否则,DataContexts此处描述了一些管理并发的技术:如何:管理变更冲突