2010-07-07 138 views
1

我正在開發使用實體框架的應用程序。爲什麼SaveChanges在調試時調用?

當我處於調試模式時,即使我沒有點擊SaveChanges方法,我的測試值也會保存到數據庫中。

這是怎麼發生的?

我花了4小時試圖數字出來,但沒有運氣....

即使我有我的動作開始斷點,我退出調試器馬上 - 數據仍然在繼續。 ..

+0

您的代碼中有一個錯誤。處理'SavingChanges',在那裏放置一個斷點,並在停止時查看調用堆棧。 – 2010-07-07 17:42:02

+0

我應該在那裏尋找什麼? – Alex 2010-07-07 21:24:22

+0

您在調用堆棧中尋找導致調用SaveChanges的東西。 – 2010-07-08 12:28:45

回答

0

呃,事實證明,調試器即使在斷點上時仍然繼續執行代碼,並且如果代碼中沒有錯誤,它會將更改應用於數據庫。爲了避免這種

一個辦法 - 就是預處理程序添加到您的代碼是這樣的:

#if !DEBUG 
     context.SaveChanges(); 
#endif 

我是不是能夠通過SavingChanges的方法來跟蹤它,因爲真的不知道我應該怎麼找那裏,有很多不同的事情,我沒有足夠的時間來阻止。

相關問題