1

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

问题是,我不知道在哪里捕获这个异常,以及如何识别它。我将有其他需要捕获的数据库错误,例如 PK 违规,因此无法对 SaveChanges() 进行通用 SQLException 检查。另一方面,我无法将连接打开(因为我会使用 pre-EF)在 try catch 中,因为我已经将所有这些都留给了实体框架。

有任何想法吗?

提前致谢 - 安迪

4

1 回答 1

0

恕我直言,不可用可能随时发生,即使在成功连接之后但在提交之前或在读取期间也是如此。

因此,您必须在最高级别捕获异常,并在您的 catch 块中尝试连接(可能是异步的,因为连接超时可能很重要)。可以按照评论中引用的帖子中所披露的方式进行测试以查看实体框架是否与某些东西相关联

于 2013-05-31T13:15:01.560 回答