2010-02-05 27 views
1

關於SubmitChanges命令(插入,更新,刪除),有沒有辦法改變這個命令?我需要首先執行刪除,任何更新,然後再執行任何新的插入。我有一個數據網格,用戶可以在其中完成所有添加,更改和更新並提交。由於每個網格行都必須包含一個唯一的項目(通過下拉菜單),因此用戶可能會刪除該行,然後嘗試在新行中使用已刪除的下拉項目,然後嘗試更新所有更改並擁有更新失敗(因爲用戶想要刪除的項目實際上仍然存在於數據庫中,因爲提交首先執行插入操作)。有沒有可以控制自動更新順序的設置,還是我必須自己手動執行更新?LINQ上下文SubmitChanges

回答

0

我不相信這是可能的。您必須按所需順序處理更改,並在每次插入,更新或刪除後調用SubmitChanges()。如果您希望整個事務處於事務範圍內,請使用TransactionScope對象。

1

我還沒有試過這個,但你可以考慮以下。首先,使用DataContext.ChangeSet獲取ChangeSet。然後,在DataContext的新實例上運行ChangeSet.Deletes,呼叫Table<T>.DeleteOnSubmit。沖洗重複ChangeSet.UpdatesChangeSet.Inserts

好運。