2015-05-03 23 views
1

其实我有一些代码,失败与此异常CommitFailedException不会抛出

在EntityFramework.SqlServer.dll

此异常回避型“System.Data.Entity.Infrastructure.CommitFailedException”首先excepction将更改保存在我的数据库中,但不会在我的代码中引入任何豁免。它只是在结果(输出)窗口,当我调试时apears。

有些事情我tryed ...

Try 
{ 
    dbContext.SaveChanges(); 
} 
catch(Exception ex) 
{ 
    // It never stosp Here 
    var somethingshere = ex.message; 
} 

,但不停止,不抛出任何其他错误。

我该怎么办才能看到它并查看异常详细信息?

注意:我使用EF 6.1和.NET 4.5。

+0

您是否在调试 - >异常菜单中检查了引发异常时的中断选项? – DeJaVo

+0

是的,我做过了,它向我展示了另一个EF Exceptions。 –

+0

@DeJaVo你确定无疑,它已经准备好了。非常非常感谢您的帮助。 –

回答

1

更新:在调试 - >异常菜单中勾选'抛出异常时中断'选项。

Debug menu

如果失败 - 我想这可能是有益的:

如果您的应用程序可以处理这些相对不频繁地被抛出(例如,用户可以只验证重试最后一次如果需要,可以自行操作),您可以通过添加一个TransactionHandler的实现来避免CommitFailureHandler的开销,这只会引发有用的异常。

来源:https://entityframework.codeplex.com/wikipage?title=Handling%20of%20Transaction%20Commit%20Failures%20

源本身是非常丰富的。我希望它能帮助你解决问题。