我在内存中有一个LinqToSql对象,它在数据库的字段值应该在对象的生命周期内发生变化。因此,我需要定期检查一切是否仍然同步。我本来希望能够这样做:
myDataContext.Refresh(RefreshMode.KeepCurrentValues, myObj);
但不幸的是,这似乎没有效果;即使DB值已更改,myObj
上的值也保持不变。 MSDN documentation on this method非常缺乏。谁能告诉我这里缺少什么?
答案 0 :(得分:13)
如果您希望刷新对象的当前值与数据库中当前的值匹配,则需要使用RefreshMode.OverwriteCurrentValues
模式。
答案 1 :(得分:3)
如果您想使用最新值“刷新”您的实体,那么相应的mode将为RefreshMode.KeepChanges
或RefreshMode.OverwriteCurrentValues
。
KeepChanges
将保留任何本地更改的值。 OverwriteCurrentValues
将从数据库中获取所有值。
小心ChangeConflictException
s。