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