3

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

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

Entity Framework 每次保存更改或物化对象时都会创建一个连接。此连接可能会失败。

我想用实体框架实现一些东西,这样当数据库连接失败时,它会在给定时间后再次尝试连接。

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

有什么建议吗?

4

2 回答 2

1

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

于 2012-08-14T10:06:49.303 回答
1

查看Microsoft 的瞬态故障处理,它的创建正是为了满足您的要求。

于 2012-08-14T10:09:43.473 回答