从ChangeSet中删除Linq-to-SQL

时间:2011-11-07 23:19:43

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

ObservableCollection<Widget> NotifyCollectionChangedAction.Add执行了context.Widget.InsertOnSubmit(addedWidget)

在我执行context.SubmitChanges()之前,我需要删除其中一个已添加的项目,因为不再需要这些项目,但context.GetChangeSet().Inserts中仍有一些项目仍需要插入。

可以取消特定的插入/删除而不丢弃DataContext并重新开始吗?

1 个答案:

答案 0 :(得分:5)

致电context.Widget.InsertOnSubmit(addedWidget)后,您可以通过以下方式删除addedWidget之前实际插入的SubmitChanges

context.GetTable(Widget.GetType()).DeleteOnSubmit(addedWidget);
context.SubmitChanges(); // the insert simply doesn't happen.

这只是从它最初要添加的上下文中删除addedWidget。我会假设您仍然拥有deletedWidget InsertOnSubmit(deletedWidget)然后{{1}}并且不会被删除。