你怎么在LinqToSql明确的变化?(How do you clear changes in Li

2019-06-26 11:12发布

我在我的WPF应用程序的组合框了一个数据绑定到我的对象的名单在我的视图模型。 当用户更改选定的对象,然后在保存前选择其他项目,我需要清除所做的更改。

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

我也试着使用dataContext.Refresh但这不起作用无论是作为对象不存在于数据库中,我创建它手动从一个SP。

请帮忙。 谢谢。

Answer 1:

你最好的选择可能是重新查询到一个单独的数据上下文。 您可以通过使用否定(由变更集)插入DeleteOnSubmit (和反向),但我宁愿不要,我自己。



Answer 2:

除了使用使用DeleteOnSubmit(或DeleteAllOnSubmit)删除插入马克的方法,下面将实际撤销任何更新藏汉:

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


文章来源: How do you clear changes in LinqToSql?