数据库中的数据发生更改时,LINQ to SQL不会更新

时间:2010-04-19 02:28:56

标签: c# .net linq linq-to-sql

我有这个问题,在数据库上更新字段(比如表MyTable中的Field3)后,MyTable.Field3(在C#中)仍然返回旧值。

我怀疑有一些缓存......?

如何强制它:
从数据库中读取值?
OR
更新MyTable类中的值?

或者我有什么想念?我是LINQ的新手

提前谢谢。

2 个答案:

答案 0 :(得分:11)

DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity);

如果要刷新整个实体集,最简单的方法可能就是创建一个新的DataContext并重新查询所有内容。

答案 1 :(得分:6)

你误解了这个模型。每次要求成员时,Linq to SQL都不会传递到数据库。当您从数据库中获取对象时,它将作为Linq to SQL对象存储在内存中,并且它就在那里。在再次查询数据库之前,您不会获得该对象的最新版本。