这是我所拥有的:
Debug.WriteLine("myMethod ok");
db.myTable.AddObject(new_item);
db.SaveChanges();
Debug.WriteLine("myMethod save changes");
在输出窗口中,我得到:
"myMethod ok"
之后就什么都没有了。因此,AddObject 和 SaveChanges 不会引发异常,因为如果它们会,我会在调试时得到该异常。
这可能是什么原因?
这是我所拥有的:
Debug.WriteLine("myMethod ok");
db.myTable.AddObject(new_item);
db.SaveChanges();
Debug.WriteLine("myMethod save changes");
在输出窗口中,我得到:
"myMethod ok"
之后就什么都没有了。因此,AddObject 和 SaveChanges 不会引发异常,因为如果它们会,我会在调试时得到该异常。
这可能是什么原因?
重新阅读您的问题,我意识到这也可能是一个不同的问题。也许db.SaveChanges();
永远挂起,在函数顶部放置一个断点并单步执行。
异常可能被调用您的函数的更高级别的 try-catch 块捕获。
您可以通过转到Debug->Execptions...
下拉菜单并选中Thrown
公共语言运行时异常框来启用“抛出时捕获异常”来跟踪正在发生的事情。
这将导致您的代码因异常而中断,即使它位于 try-catch 块内。
如果您没有看到“User-Unhanded”框,请检查如下图
转到Debug -> Options and Settings...
并确保选中“仅启用我的代码”框。
如果不检查,它将中断 .NET 框架抛出的不代表问题的内部异常,只是控制通过框架中的异常实现的流逻辑(大多数情况下它是某种 TimeOutExecption)。
如果仍然没有捕获到异常,请在未选中“仅我的代码”的情况下再次尝试,请注意框架可能抛出的可能的“红鲱鱼”异常。
检查菜单 DEBUG - Exceptions 并标记所有 Throw 复选框。也许你会收到异常。