我在内存中有一个LinqToSql对象,它在数据库中的字段值预计会在对象的生存期内更改。因此,我需要定期检查一切是否仍处于同步状态。我希望能够这样做:
myDataContext.Refresh(RefreshMode.KeepCurrentValues, myObj);
但不幸的是,这似乎没有任何效果;即使当DB值已经改变时,CCD_ 1上的值也保持相同。关于这种方法的MSDN文档非常少。有人能告诉我我在这里缺了什么吗?
如果希望刷新对象的当前值与数据库中的当前值匹配,则需要使用RefreshMode.OverwriteCurrentValues
模式。
如果您想用最新的值"刷新"实体,那么合适的模式应该是RefreshMode.KeepChanges
或RefreshMode.OverwriteCurrentValues
。
KeepChanges
将保留任何本地更改的值。OverwriteCurrentValues
将从数据库中获取所有值。
小心ChangeConflictException
s。