0

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

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

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

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

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

谢谢。鲍勃

4

1 回答 1

0

发生这种情况是因为您只是将 Visual Studio 调试器与正在运行的 IIS/IIS Express 实例分离。一旦你分离调试器,请求的执行就会在网络服务器上继续,因此,其余的代码就会被执行。

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

#if DEBUG
    return null;
#endif

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

于 2013-10-25T07:15:53.113 回答