EntietyFramework не может перехватить исключение DbUpdateException - PullRequest
0 голосов
/ 31 марта 2020

У меня проблема с перехватом DbUpdateException при удалении объекта, связанного с другими таблицами, из базы данных MySQL, и DbContext.SaveChanges () выдает это точное исключение.

Следующий код не перехватывает исключение:

    public async Task<ActionResult<JobTitle>> DeleteJobtitle(int id) {
        var jobtitle = await _context.Jobtitle.FindAsync(id);

        if (jobtitle == null) {
            return NotFound();
        }

        _context.Jobtitle.Remove(jobtitle);

        try {
            _context.SaveChanges();
        }
        catch (DbUpdateException ex) {
            Console.WriteLine("exception: " + ex.Message);
        }

        return jobtitle;
    }

И это вывод консоли, когда возникает исключение:

 Microsoft.EntityFrameworkCore.Database.Command[20102]
  Failed executing DbCommand (1,601ms) [Parameters=[@p0='?' (DbType = Int32)], CommandType='Text', CommandTimeout='30']
  DELETE FROM `jobtitle`
  WHERE `idJobTitle` = @p0;
  SELECT ROW_COUNT();
fail: Microsoft.EntityFrameworkCore.Update[10000]
  An exception occurred in the database while saving changes for context type 'DbAPI.DbContexts.DbContext'.
  Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details.

Почему мой блок try catch не перехватывает исключение?

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