我正在使用 Entity Framework 和 SQL Server 进行一些错误恢复。我希望我的应用程序在与数据库的连接恢复后在后台重新加载信息。
我的测试场景:
- 将我的机器置于飞行模式
- 启动应用程序;预期错误:(提供者:TCP 提供者,错误:0 - 不知道这样的主机。)
- 应用程序将通过使用实体框架执行查询每 5 秒重试一次连接
- 关闭飞行模式
- 经过 10 次以上的尝试;仍然存在相同的错误:(提供者:TCP 提供者,错误:0 - 不知道这样的主机。)
这使我相信执行查询不会在连接恢复后尝试打开新的传输级别连接。
有没有办法告诉实体框架(或 ADO.NET)尝试重新打开连接?
更新:由于我使用的是 Entity Framework 6,我可以使用SqlAzureExecutionStrategy而不是手动编码或企业库重试策略。