2012-06-06 2 views
0

Я начал использовать Entity Framework 4.3.1 с первым подходом кода.Как поймать исключения из пространства имен System.Data?

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

using (var db = new MyContext()) 
{ 
    var people = new People(); 
    db.People.AddObject(people); 
    db.SaveChanges(); 
} 

Когда сервер выключен, я получаю ProviderIncompatibleException. Если я пытаюсь изменить код ловли ProviderIncompatibleException как этого

using (var db = new MyContext()) 
{ 
    try 
    { 
     var people = new People(); 
     db.People.AddObject(people); 
     db.SaveChanges(); 
    } 
    catch(ProviderIncopatibleException) 
    { 
    } 
}  

я получаю ошибку компилятора «тип пойманы или выброшен должен быть выведен из System.Exception». Как я могу поймать наиболее конкретное исключение, используя инфраструктуру Entity? Благодарим за помощь.

+1

По http://msdn.microsoft.com/en-us/library/system.data.providerincompatibleexception.aspx это происходит от System.Exception. Вы пробовали использовать весь путь класса: 'System.Data.ProviderIncompatibleException'? – MarcinJuraszek

+0

В названии есть опечатка: ProviderInco-patibleException' – Polynomial

+0

@MarcinJuraszek Вы правы. Я не ссылался на сборку System.Data –

ответ

1

В названии класса есть опечатка - вы пропустили «m» в Несовместимом.

Попробуйте снова с ProviderIncompatibleException

+0

Спасибо за информацию. У меня есть исправленное имя исключения. –