1
我正在開發使用實體框架的應用程序。爲什麼SaveChanges在調試時調用?
當我處於調試模式時,即使我沒有點擊SaveChanges方法,我的測試值也會保存到數據庫中。
這是怎麼發生的?
我花了4小時試圖數字出來,但沒有運氣....
即使我有我的動作開始斷點,我退出調試器馬上 - 數據仍然在繼續。 ..
我正在開發使用實體框架的應用程序。爲什麼SaveChanges在調試時調用?
當我處於調試模式時,即使我沒有點擊SaveChanges方法,我的測試值也會保存到數據庫中。
這是怎麼發生的?
我花了4小時試圖數字出來,但沒有運氣....
即使我有我的動作開始斷點,我退出調試器馬上 - 數據仍然在繼續。 ..
呃,事實證明,調試器即使在斷點上時仍然繼續執行代碼,並且如果代碼中沒有錯誤,它會將更改應用於數據庫。爲了避免這種
一個辦法 - 就是預處理程序添加到您的代碼是這樣的:
#if !DEBUG
context.SaveChanges();
#endif
我是不是能夠通過SavingChanges的方法來跟蹤它,因爲真的不知道我應該怎麼找那裏,有很多不同的事情,我沒有足夠的時間來阻止。
您的代碼中有一個錯誤。處理'SavingChanges',在那裏放置一個斷點,並在停止時查看調用堆棧。 – 2010-07-07 17:42:02
我應該在那裏尋找什麼? – Alex 2010-07-07 21:24:22
您在調用堆棧中尋找導致調用SaveChanges的東西。 – 2010-07-08 12:28:45