当连接丢失时,如何将实体框架连接重新连接到数据库

时间:2012-11-15 07:17:40

标签: c# .net sql entity-framework mvvm

我正在使用实体框架MVVM开展5.0项目。

我连接到托管数据库,有时实体框架失去了与数据库的连接。

当连接丢失时,重新连接到数据库的连接的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

在保存更改期间断开连接时,您只会获得异常。整个保存在事务中完成,该事务由于异常而未提交,并且EF未将其当前更改设置为已完成。当特定异常发生时,您可以尝试再次保存更改 - EF将尝试打开新连接并执行相同的事务


表示: 好吧,也许是这样的:

public virtual void SubmitChanges()
{
    if (DataContext != null)
    {               
        try
        {
             DataContext.SubmitChanges();
        }
        catch (Exception whenILostMyConnection)
        {
             SubmitChanges(); //recall the sumbitChanges
        }
    }             
}

答案 1 :(得分:0)

您可以在Windows Azure源代码中查看答案。 Azure CRUD操作通常将它们放入循环中,这些循环会重试多次执行相同操作,导致某些特定异常。但是你必须非常谨慎地处理重试处理的异常,因为在大多数情况下它会使你的app变慢。

相关问题