当前位置:  开发笔记 > 编程语言 > 正文

如何在LINQtoSQL中撤消ChangeSet

如何解决《如何在LINQtoSQL中撤消ChangeSet》经验,为你挑选了1个好方法。

在我的数据层类中,我创建了一个手动刷新数据源的函数.

Public Sub DiscardAllChanges()

    _Context.Refresh(RefreshMode.OverwriteCurrentValues)

End Sub

问题是此操作后的上下文ChangeSet仍然跟踪我手动调用InsertOnSubmit等的上一次Insertion,Deletion和Update操作.

是否有可能以某种方式清除ChangeSet?或者如果没有,你能建议我另一个解决方案吗 我是否必须在Business中创建ChangeSet图层?



1> Marc Gravell..:

处理此问题的最简单方法是将其DataContext视为您的工作单位.在单个上执行相关操作的原子集DataContext,然后在成功或失败Dispose()之后执行(理想情况下通过using)并将其丢弃.

启动新的下一组操作DataContext.同样,您可以重新查询数据.

在逐个对象的基础上,您可以使用GetOriginalEntityState(在表上)获取原始值,但是您需要重新应用于"实时"对象,这不会处理删除/插入案例.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有