我使用Entity Framework 5编写了一个Windows服务(c#),用于对SQL Server进行数据访问。我需要我的服务来应对不时会发生的数据库,因此需要明确处理此异常。
事情是,我无法找出捕获此异常的位置,以及如何识别它。我将需要捕获其他数据库错误,例如PK违规因此无法对SaveChanges()进行通用的SQLException检查。另一方面,我不能在try catch中打开连接(因为我会有pre-EF),因为我把所有这些都留给了Entity Framework。
有什么想法吗?
先谢谢 - 安迪
答案 0 :(得分:0)
imho不可能在任何时候发生不可用,即使在成功连接之后但在提交之前或在读取期间。
所以你必须在最高级别捕获异常并在catch块中尝试连接(可能是异步的,因为连接超时可能很重要)。测试可以在评论To see if entity Framework is connected to something
中引用的帖子中公开