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

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

myDataContext.Refresh(RefreshMode.KeepCurrentValues, myObj); 

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

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

如果要使用最新值“刷新”实体,则适当的模式将是RefreshMode.KeepChangesRefreshMode.OverwriteCurrentValues

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

小心ChangeConflictException