2009-12-03 39 views
0

我們在數據庫中有一個表格,代表我們網頁中的一堆div。每個div的像素寬度,高度,頂部和左側都保存爲表格中的單個記錄。它有一個主鍵。我們將表中的所有div加載到網頁中,用戶重新排列squres,然後在單個事務中使用Linq「OnSubmit」方法將更改後的方格保存回表中。如何使用Linq事務刪除並插入具有相同主鍵的記錄

我們的問題是我們刪除所有的方塊,然後重新插入所有的方塊。沒有交易,這工作正常。對於事務,它標記了所有要刪除的記錄,然後插入實際更新已標記爲要刪除的記錄。最後,一些廣場丟失了。

我們做DeleteOnSubmit(),然後InsertOnSubmit(),然後最終.SubmitChanges()。

我們在哪裏犯我們的錯誤?如何處理刪除並重新插入所有相同的事務?很明顯,我們可以在刪除後提交ModifyChanges(),但這不會將它放在同一個事務中。

任何想法?任何模式?你需要實際的源代碼來繼續嗎?

+0

爲什麼你不只是更新數據?刪除/插入似乎是浪費時間。另外,主鍵是自動生成還是手動創建它們? – tvanfosson 2009-12-03 16:24:08

+0

鍵不會自動生成。網頁返回什麼正方形將被保存。我想我們可以刪除使用RAM中的記錄返回的內容的補充。正方形也被多個用戶操縱,但正方形有顏色,我們一次只能改變一種顏色。 – 2009-12-03 16:33:27

+0

這看起來很有趣http://msdn.microsoft.com/en-us/library/bb386982.aspx – 2009-12-03 16:45:50

回答

2

我們建議您自行打開交易並在必要時進行提交。
在這種情況下,內部交易將不會被打開。

 
t = db.Connection.BeginTransaction(); 
db.Transaction = t; 
DeleteOnSubmit(); 
SubmitChanges(); 
InsertOnSubmit(); 
SubmitChanges(); 
t.Commit(); 
+0

這正是我正在做的,但刪除不起作用。如果我刪除7條記錄並插入6條記錄,我仍然留下7條記錄。沒有錯誤拋出。 – Gullbyrd 2017-09-20 21:30:28

+0

請通過http://www.devart.com/company/contactform.html向我們發送一個測試項目來重現此問題。 – Devart 2017-09-29 15:58:22

相關問題