我们在ASP.NET MVC 3上运行了一个关键应用程序。
由于我们的故障转移解决方案,当机器崩溃时,数据库可能需要一些时间来恢复,比方说,1秒钟。
实体框架每次保存更改或实现对象时都会创建连接。此连接可能会失败。
我想在Entity Framework中实现一些功能,以便在数据库连接失败的给定时间后再次尝试连接。
我希望每个ObjectContext实例只能实现一次这个解决方案,也就是说,我不想在每个ToList
或First
周围放置一个try / catch。
有什么建议吗?
答案 0 :(得分:1)
您可以尝试创建自己的EF Provider Wrapper。这将允许您更改数据库连接和数据库命令的逻辑。您将不得不与EF一起玩,以找到将重试逻辑准确放入包装器的位置,但恕我直言,这是最好的集中使用场所,而无需创建一个全新的提供商。
答案 1 :(得分:1)
通过Microsoft查看Transient Fault Handling,创建它是为了完全按照您的要求进行操作。