我很难弄清楚在哪里捕获实体框架异常。我已经SaveChanges
涵盖了并发异常,但是,我很难找到一个通用规则来捕获其他异常(例如由于服务器关闭而导致的超时等)。
我正在做一个 Windows 客户端应用程序,因此异常不能只是吐出“错误”网页,它们必须给出继续应用程序的选项(因为您可能在其中打开了其他窗口,这不是简单的应用程序)。
这在直接使用 ADO.net 时很容易弄清楚:您会在连接打开和查询执行时捕获异常,但是我不太确定何时打开连接和使用 EF4 执行查询(在这种情况下为数据库优先) )。
有一些简单的情况(例如,当我通过IQueryable
调用ToList
or实际在控制行为(我并不总是控制),它可能会或可能不会实际执行查询(某些控件在稍后调用时执行它)。ToArray
IQueryable
DataSource
DataBind
我知道我可以通过反复试验(或只是做try/catch
大块)来做到这一点,但我正试图找出一种更通用的方法来做到这一点。
我尝试在 上搜索一些类似onexception
事件ObjectContext
,但没有在附近找到任何东西,而且我在这件事上找到的所有内容都是关于异常SaveChanges
和并发异常,正如我所说,我已经介绍过了。
关于去哪里的任何提示?