实体框架中的数据库不可用

时间:2013-05-31 11:26:58

标签: c# sql-server-2008 entity-framework

我使用Entity Framework 5编写了一个Windows服务(c#),用于对SQL Server进行数据访问。我需要我的服务来应对不时会发生的数据库,因此需要明确处理此异常。

事情是,我无法找出捕获此异常的位置,以及如何识别它。我将需要捕获其他数据库错误,例如PK违规因此无法对SaveChanges()进行通用的SQLException检查。另一方面,我不能在try catch中打开连接(因为我会有pre-EF),因为我把所有这些都留给了Entity Framework。

有什么想法吗?

先谢谢 - 安迪

1 个答案:

答案 0 :(得分:0)

imho不可能在任何时候发生不可用,即使在成功连接之后但在提交之前或在读取期间。

所以你必须在最高级别捕获异常并在catch块中尝试连接(可能是异步的,因为连接超时可能很重要)。测试可以在评论To see if entity Framework is connected to something

中引用的帖子中公开