2010-07-09 108 views
0

如果我要重新提交的變化,我必須讓我的第一次提交後重新定義它們,或者我可以簡單地再次調用的SubmitChanges()方法,如下面的代碼:重新提交更改?

DB.SubmitChanges(); 

Thread.Sleep(1000); 

DB.SubmitChanges(); 

編輯:之所以我想這樣做是因爲我有兩個不同的linq查詢使用RefreshMode.OverwriteCurrentValues處理衝突。其中一個問題比另一個更重要,爲了勝過另一個問題,我最好的想法(我承認這不是很好)是等待一段時間後重新提交更改。

+0

我們可以得到一些關於你爲什麼需要這樣做的背景嗎?這將有助於最終的解決方案... – Tommy 2010-07-09 21:02:07

+0

當然,請給我一分鐘,並檢查OP進行一些編輯。 – sooprise 2010-07-09 21:02:45

回答

0

如果DB.SubmitChanges在不拋出異常的情況下返回 - 它認爲數據庫現在有更改。它仍在跟蹤「已更改」的值,但它們被跟蹤爲未更改,並且不會被重新提交。

如果DB.SubmitChanges引發,那麼它認爲沒有任何更改使其對數據庫。在這種情況下,「已更改」值仍會跟蹤爲已更改,並再次調用DB.SubmitChanges將嘗試進行相同的更改。在進行第二次調用之前,您可能想要解決樂觀的併發衝突。