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