从ChangeSet中删除Linq-to-SQL

Sta*_*ams 2 c# linq datacontext linq-to-sql

我有一个ObservableCollection<Widget>NotifyCollectionChangedAction.Add执行context.Widget.InsertOnSubmit(addedWidget).

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

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

Eri*_*ips 5

在调用之后,context.Widget.InsertOnSubmit(addedWidget)您可以通过使用以下方式addedWidget从实际插入中删除SubmitChanges:

context.GetTable(Widget.GetType()).DeleteOnSubmit(addedWidget);
context.SubmitChanges(); // the insert simply doesn't happen.
Run Code Online (Sandbox Code Playgroud)

这只是addedWidget从它最初要添加的上下文中删除它.我会假设如果你仍然拥有你的deletedWidgetInsertOnSubmit(deletedWidget),它就不会被删除.