DataContext.Refresh()的正确用法是什么?

时间:2011-06-06 15:19:37

标签: c# linq linq-to-sql

我在内存中有一个LinqToSql对象,它在数据库的字段值应该在对象的生命周期内发生变化。因此,我需要定期检查一切是否仍然同步。我本来希望能够这样做:

myDataContext.Refresh(RefreshMode.KeepCurrentValues, myObj);

但不幸的是,这似乎没有效果;即使DB值已更改,myObj上的值也保持不变。 MSDN documentation on this method非常缺乏。谁能告诉我这里缺少什么?

2 个答案:

答案 0 :(得分:13)

如果您希望刷新对象的当前值与数据库中当前的值匹配,则需要使用RefreshMode.OverwriteCurrentValues模式。

答案 1 :(得分:3)

如果您想使用最新值“刷新”您的实体,那么相应的mode将为RefreshMode.KeepChangesRefreshMode.OverwriteCurrentValues

KeepChanges将保留任何本地更改的值。 OverwriteCurrentValues将从数据库中获取所有值。

小心ChangeConflictException s。