这就是我所拥有的:
Debug.WriteLine("myMethod ok");
db.myTable.AddObject(new_item);
db.SaveChanges();
Debug.WriteLine("myMethod save changes");
在输出窗口中,我得到:
"myMethod ok"
之后什么都没有。因此,AddObject和SaveChanges不会抛出异常,因为如果他们愿意,我会在调试时得到异常。
这可能是什么原因?
答案 0 :(得分:5)
重新阅读你的问题,我意识到这也可能是一个不同的问题。也许db.SaveChanges();
永远挂起,在功能的顶部放置一个断点并逐步完成。
异常可能被调用你的函数的更高级别的try-catch块捕获。
您可以通过转到Debug->Execptions...
下拉菜单并检查公共语言运行时例外的Thrown
框来启用“捕获引发异常”,以了解发生的情况。
这将导致代码在异常中中断,即使它在try-catch块中。
如果您没有看到“User-Unhanded”框,请检查如下图所示
转到Debug -> Options and Settings...
并确保选中“启用我的代码”框。
如果没有检查它将破坏.NET框架抛出的不代表问题的内部异常,只是控制通过框架中的异常实现的流逻辑(大多数时候它是一些TimeOutExecption of some样)。
如果仍未捕获异常,请在未选中“Just My Code”的情况下再次尝试,只需注意框架可能抛出的“red-herring”异常。
答案 1 :(得分:0)
检查菜单DEBUG - 例外并标记所有Thrown复选框。 也许你会收到例外。