2011-11-07 29 views
1

我有一個ObservableCollection<Widget>,在NotifyCollectionChangedAction.Add執行context.Widget.InsertOnSubmit(addedWidget)Linq到SQL從變更集刪除

在執行context.SubmitChanges()之前,我需要刪除其中一個已添加的項目,因爲它不再需要,但是仍然可能還有context.GetChangeSet().Inserts中的項目仍然需要插入。

它可以取消一個特定的插入/刪除而不拋棄DataContext並重新啓動?

回答

4

調用context.Widget.InsertOnSubmit(addedWidget)後,您可以通過使用之前SubmitChanges實際上被插入刪除addedWidget

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

這僅僅去除它最初將增加的背景下addedWidget。我會假設如果你仍然有你的deletedWidget你可以然後InsertOnSubmit(deletedWidget)它不會被刪除。