你如何清除Linq To Sql的变化?

时间:2009-07-21 10:15:37

标签: c# wpf linq-to-sql datacontext

我的WPF应用程序中有一个组合框,它与我的View模型中的对象列表相关联。当用户对所选对象进行更改,然后在保存之前选择另一个项目时,我需要清除所做的更改。

我以为我可以使用dataContext.GetChangeSet()。Updates.Clear()但由于某种原因,该集合是只读的。

我也尝试过使用dataContext.Refresh,但这不起作用,因为数据库中不存在该对象,我是从SP手动创建的。

请帮忙。感谢。

2 个答案:

答案 0 :(得分:3)

除了使用Marc的方法使用DeleteOnSubmit(或DeleteAllOnSubmit)删除插入内容外,以下内容实际上还将撤消任何更新:

// clears any updates.  
ChangeSet changes = dataContext.GetChangeSet();
dataContext.Refresh(RefreshMode.OverwriteCurrentValues, changes.Updates);   

答案 1 :(得分:2)

您最好的选择可能是重新查询单独的数据上下文。你可以使用DeleteOnSubmit(和反向)来否定插入(来自更改集),但我不想,我自己。