Не могу поймать DbUpdateException, возникающее в моем репозитарии на моем методе контроллера - PullRequest
1 голос
/ 14 марта 2012

у меня есть следующий метод действия регистра: -

[AcceptVerbs(HttpVerbs.Post)]
        public PartialViewResult Register(string id, int classid) {

           try
{
 User user = r.FindUser(id);
            Users_Classes uc = new Users_Classes();
            uc.AddedDate = DateTime.Now;
            uc.ClassID = classid;
            user.Users_Classes.Add(uc);
            repository.Save();
            ViewBag.classid = classid;
            return PartialView("_usersearch2", uc);
}
    catch (System.Data.UpdateException ex)
           { 
    return PartialView("_error");}  }

, который вызывает следующий метод Save внутри класса репозитория: -

public void Save() {
            entities1.SaveChanges();
        }

Я сталкиваюсь со следующими двумя проблемами сприведенный выше код: -

  1. , если два пользователя системы зарегистрируют одного и того же пользователя в одном классе, тогда будет выдано следующее исключение DbUpdateException для repository.Save(); и catch (System.Data.UpdateException ex)не справиться.так как я могу заставить исключение быть переданным в мой метод действия?

  2. как я могу вернуть окно предупреждения (которое указывает, что пользователь, возможно, уже был добавлен в этот класс), есливозникает исключение вместо возврата PartialView("_error");}?.

BR

1 Ответ

1 голос
/ 14 марта 2012

1) Насколько я понимаю, DbUpdateException не является подклассом UpdateException, поэтому, если вы хотите перехватить DbUpdateException, вам, вероятно, следует отловить это специально. В качестве альтернативы вы можете поймать DataException, который является базовым классом для UpdateException и DbUpdateException

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