Entity Framework : 处理底层提供者无法打开的错误
Entity Framework : handle error the underlying provider fail to open
在 Entity Framework 中处理网络错误的最佳方法是什么?每次我与 Azure SQL 数据库的互联网连接不佳时,我都会收到以下错误:
The underlying provider failed on Open.
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible.
我知道这个错误是由于工作中网络连接的稳定性造成的,所以我不是要修复这个错误,而是要优雅地处理给用户。
我可以使用 try catch,但我将不得不修改每个 class 尝试使用该连接的每一行。
一种替代方法是使用存储库进行连接并在那里处理错误,但是重构代码的每一部分将花费大量时间。所以我正在寻找替代品。
的例子
Context DB = new Context();
List<Persona> lista = new List<Persona>();
List<Persona> listaTemporal = new List<Persona>();
listaTemporal = DB.Personas.Where(one => one.Activo == true &&
one.FechaEstadoInicialSAP != null)
.ToList(); // it stops here because of the exception
这是一个很好的指针,其中包含用于实现重试策略的代码示例:
https://msdn.microsoft.com/en-us/data/dn456835.aspx?f=255&MSPPError=-2147217396
谢谢,
米哈埃拉
在 Entity Framework 中处理网络错误的最佳方法是什么?每次我与 Azure SQL 数据库的互联网连接不佳时,我都会收到以下错误:
The underlying provider failed on Open.
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible.
我知道这个错误是由于工作中网络连接的稳定性造成的,所以我不是要修复这个错误,而是要优雅地处理给用户。
我可以使用 try catch,但我将不得不修改每个 class 尝试使用该连接的每一行。
一种替代方法是使用存储库进行连接并在那里处理错误,但是重构代码的每一部分将花费大量时间。所以我正在寻找替代品。
的例子Context DB = new Context();
List<Persona> lista = new List<Persona>();
List<Persona> listaTemporal = new List<Persona>();
listaTemporal = DB.Personas.Where(one => one.Activo == true &&
one.FechaEstadoInicialSAP != null)
.ToList(); // it stops here because of the exception
这是一个很好的指针,其中包含用于实现重试策略的代码示例: https://msdn.microsoft.com/en-us/data/dn456835.aspx?f=255&MSPPError=-2147217396
谢谢, 米哈埃拉