【问题标题】:why SaveChanges invokes when i'm debugging?为什么在我调试时调用 SaveChanges?
【发布时间】:2010-07-07 17:08:03
【问题描述】:

我正在使用实体框架开发应用程序。

当我处于调试模式时,我的测试值会在我退出调试时保存到数据库中,即使我没有点击 SaveChanges 方法。

为什么会这样?

我花了 4 个小时试图弄清楚,但没有运气......

即使我在操作开始时有断点,并且我立即退出调试器 - 数据仍然存在......

【问题讨论】:

  • 您的代码中有错误。处理SavingChanges,在那里下断点,停止时查看调用堆栈。
  • 我应该在那里寻找什么?
  • 你在调用堆栈中寻找导致SaveChanges被调用的东西。

标签: c# .net entity-framework linq-to-entities


【解决方案1】:

好吧,事实证明,即使代码处于断点处,调试器也会继续执行代码,如果我的代码中没有错误,它会将更改应用到数据库。

避免这种情况的一种方法是在代码中添加预处理器,如下所示:

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

我无法通过 SavingChanges 方法跟踪它,因为我不确定我应该在那里寻找什么,有很多不同的东西,我没有足够的时间来坚持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2013-06-20
    相关资源
    最近更新 更多