【发布时间】:2011-10-06 19:16:50
【问题描述】:
STE 抛出两种异常:
- 更新异常
- InvalidOperationException
使用 UpdateException 我们可以检查内部 SQLExeption.Number 以识别异常(例如 515=NullNotAllowed)
InvalidOperationException 似乎没有公开代码。 Hresult 属性受到保护。
目前我正在解析难看的 InvalidOperationException.Message:
Try
Using ctx AS New MyEntities
ctx.Orders.ApplyChanges(order)
ctx.SaveChanges()
End Using
Catch ex As InvalidOperationException When ex.Message.Contains("...foreign-key properties is non-nullable")
Throw New FaultException("...")
Catch ex As UpdateException When CType(ex.InnerException, SqlException).Number = SQLErrorNumbers.NullNotAllowed
Throw New FaultException("...")
End Try
我们应该如何区分 InvalidOperationExceptions? 是否有可能的 InvalidOperationExceptions 列表? 可以访问受保护的 HResult 吗?
编辑 不,我不是在谈论“重复条目”InvalidOperationExceptions! 我收到 InvalidOperationException “无法更改关系,因为一个或多个外键属性不可为空......”。
【问题讨论】:
标签: .net exception-handling self-tracking-entities