在我的数据层类中,我创建了一个手动刷新数据源的函数.
Public Sub DiscardAllChanges() _Context.Refresh(RefreshMode.OverwriteCurrentValues) End Sub
问题是此操作后的上下文ChangeSet仍然跟踪我手动调用InsertOnSubmit等的上一次Insertion,Deletion和Update操作.
是否有可能以某种方式清除ChangeSet?或者如果没有,你能建议我另一个解决方案吗 我是否必须在Business中创建ChangeSet图层?
处理此问题的最简单方法是将其DataContext
视为您的工作单位.在单个上执行相关操作的原子集DataContext
,然后在成功或失败Dispose()
之后执行(理想情况下通过using
)并将其丢弃.
启动新的下一组操作DataContext
.同样,您可以重新查询数据.
在逐个对象的基础上,您可以使用GetOriginalEntityState
(在表上)获取原始值,但是您需要重新应用于"实时"对象,这不会处理删除/插入案例.