我的数据库大概可能无法使用有时1秒。如何防止实体框架连接错误?

时间:2012-08-13 20:01:01

标签: .net entity-framework

我们在ASP.NET MVC 3上运行了一个关键应用程序。

由于我们的故障转移解决方案,当机器崩溃时,数据库可能需要一些时间来恢复,比方说,1秒钟。

实体框架每次保存更改或实现对象时都会创建连接。此连接可能会失败。

我想在Entity Framework中实现一些功能,以便在数据库连接失败的给定时间后再次尝试连接。

我希望每个ObjectContext实例只能实现一次这个解决方案,也就是说,我不想在每个ToListFirst周围放置一个try / catch。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试创建自己的EF Provider Wrapper。这将允许您更改数据库连接和数据库命令的逻辑。您将不得不与EF一起玩,以找到将重试逻辑准确放入包装器的位置,但恕我直言,这是最好的集中使用场所,而无需创建一个全新的提供商。

答案 1 :(得分:1)

通过Microsoft查看Transient Fault Handling,创建它是为了完全按照您的要求进行操作。