即使单击调试停止,breeze savechanges仍会继续

时间:2013-10-23 18:58:22

标签: visual-studio debugging breeze savechanges

我正在测试Breeze Server Side上的BeforeSaveEntities的用户定义覆盖。我有一个断点,我正在观察saveMap,我在EFContextProvider的子类上调用一个方法来遍历要保存的每个实体。

然后,当我单击Visual Studio中的“调试停止”按钮时,仍然会发生“保存”。如果我将BeforeSaveEntities返回的返回值从原始saveMap返回null返回null,则不会。

当我要“测试”删除时,这有点令人不安......因为我正在尝试编写将执行“软”删除的代码。

无论如何,我的问题是,是否有解决方法,所以我不必在测试期间设置“返回null”?

但更重要的是,如果我抛出EntityErrorsException,它会按预期停止保存。 :)

感谢。鲍勃

1 个答案:

答案 0 :(得分:0)

这是因为您只是从正在运行的IIS / IIS Express实例中分离Visual Studio调试器。一旦分离调试器,请求的执行将继续在Web服务器上执行,因此,其余代码将被执行。

快速解决方法是将null返回代码包装在编译器条件中并检查DEBUG符号。这些方面的东西:

#if DEBUG
    return null;
#endif

应使用RELEASE编译器符号而不是DEBUG符号构建生产代码以启用删除。