实体框架中数据库不可用

本文关键字:数据库 框架 实体 | 更新日期: 2023-09-27 18:16:19

我写了一个windows服务(c#)使用实体框架5对SQL Server的数据访问。我需要我的服务来处理数据库不可用的情况,因为这种情况会不时发生,所以我想显式地处理这个异常。

问题是,我不知道在哪里捕获这个异常,以及如何识别它。我将有其他DB错误,我需要捕获,例如PK违规,所以不能做一个通用的SQLException检查SaveChanges()。另一方面,我不能在try catch中包装连接打开(因为我有pre-EF),因为我把所有这些都留给了实体框架。

任何想法?

提前致谢- Andy

实体框架中数据库不可用

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

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