Entity Framework: обработать ошибку, не удается открыть базовый поставщик

Каков наилучший способ обработки сетевых ошибок в Entity Framework? Каждый раз, когда у меня плохое интернет-соединение с базой данных SQL Azure, я получаю следующую ошибку:

Основной поставщик не удалось открыть.
При установке соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен.

Я знаю, что эта ошибка вызвана стабильностью интернет-соединения на работе, поэтому я не пытаюсь исправить ошибку, а стараюсь изящно ее обработать.

Я мог бы использовать попытку catch, но мне придется изменить каждую строку в каждом классе, который пытается использовать соединение.

Одна альтернатива - использовать хранилище для соединения и обрабатывать там ошибки, но на рефакторинг каждой части кода уйдет много времени. Поэтому я ищу альтернативы.

Пример

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

1 ответ

Решение

Вот хороший указатель с примерами кода для реализации стратегии повторения: https://msdn.microsoft.com/en-us/data/dn456835.aspx?f=255&MSPPError=-2147217396

Спасибо михаэла