【发布时间】:2013-02-19 23:40:38
【问题描述】:
我正在做一个用户可以插入/删除/添加实体的表单。我正在使用 Winforms c# 和实体框架 4。
好的,用户可以删除对象了。现在,这些对象可以被其他实体引用,所以如果用户想删除它,他会得到一个异常。
我捕捉到该异常,以便向他显示一条消息,说明该对象已开始在其他对象中使用。
我得到的异常是 (UpdateException)。但是,如果也存在更新问题,也会引发此异常。有没有办法使用这个异常从 Sql 获取错误代码?因为我确实有发生这种情况时抛出的错误代码。
如果我使用 SqlException,我可以检查它的编号,但这不是我收到的异常。
【问题讨论】:
-
底层异常可能已经保存在更新异常的 InnerException 属性中。
-
而不是捕获异常,为什么在尝试保存更改之前不检测条件?您似乎预计会出现此异常,因此您没有将异常用作异常,而是控制应用程序的流程。
-
因为我必须检查每一个关系。我将为每个实体使用它。如果 sql 自己管理它,我为什么要这样做?你告诉我的和说“为什么要使用 try catch”是一样的。只需检查之前的每个错误可能性。只是不是一个选择。不过感谢您的回答
标签: c# winforms entity-framework-4 try-catch sqlexception