【发布时间】:2012-02-18 03:29:47
【问题描述】:
我有一个使用 LINQ to SQL 连接数据库的应用程序。我无法让 LINQ to SQL 返回正确的新更新数据。
发生的事情是,我在 UI 上更改了一个字段,LINQ to SQL 生成更新语句,并将新数据存储在数据库中。但是,LINQ to SQL 之后一直返回旧数据,我必须停止并重新启动 IIS 才能获取新的更新数据。
更新
请注意,旧数据是从 LINQ to SQL 返回的。
有什么想法吗?
【问题讨论】:
-
更新后您是否提交了更改?
-
@Adrian 如果重启应用时返回新数据,则必须保存数据。
-
那么也许你正在缓存数据并且它返回缓存的值而不是新的值
-
您正在使用的
DataContext的使用寿命是多少?听起来你可能会重复使用它for more than one "unit of work" -
或者,多个
DataContexts可能正在共享一个缓存。关闭对象跟踪可以提供帮助。请参阅“第二个 DataContext 未更新”here。
标签: c# .net linq linq-to-sql linq-to-entities