Как обрабатывать исключения Linq to Entity (ошибки)? - PullRequest
0 голосов
/ 27 июня 2010

Каков наилучший способ обработки исключений linq to entity? Могу ли я использовать блок try and catch или есть лучший способ?

1 Ответ

0 голосов
/ 01 июля 2010

Мы использовали блок try, чтобы оградить нас от ошибок сохранения.

try{
  using(Context context = new Context()){
     Entity x = context.Entities.First();
     x.ModifyMe = true;
     context.SaveChanges();
   }
 }catch(UpdateException e){
  //convert to friendly message
 }

Если вы хотите поймать исключение более низкого уровня, существует также исключение OptimisticConcurrencyException

Мы также пошли немного дальше и просто обернули наши SaveChanges в метод расширения, который назывался защищенным сохранением изменений.

public static class Extension{
  public static List<Error> ProtectedSaveChanges(this ObjectContext context){
      try{
        context.SaveChanges();

      }catch(UpdateException e ){
          //Convert to freindly and return
      }
  }

}

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

Что касается альтернативного способа, я видел, как люди используют экранирование исключений (EL), но я не знаю, есть ли встроенные обработчики событий для ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...