2010-07-07 146 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的方法来跟踪它,因为真的不知道我应该怎么找那里,有很多不同的事情,我没有足够的时间来阻止。

相关问题