У меня проблема с перехватом 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 не перехватывает исключение?