public async Task <IActionResult> Edit(int id, [Bind("Id,Name")] Department department) { if (id != department.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(department); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DepartmentExists(department.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(department)); }
public async Task UpdateAsync(Seller obj) { bool hasAny = await _context.Seller.AnyAsync(x => x.Id == obj.Id); if (!hasAny) { //testando se o id já existe no banco, ja que tamos atualizando o id do objeto tem que existir //se nao existir... throw new NotFoundException("Id não encontrando"); } try { _context.Update(obj); // atualizando o objeto utilizando entity framework await _context.SaveChangesAsync(); } catch (DbConcurrencyException e) // Interceptando uma exceção do nivel de acesso a dados { throw new DbConcurrencyException(e.Message); // relançando a exceção só que a nivel de serviço, respitando o padrão MVC } // Ou seja, isso é muito importante pra dividir as camadas, onde a camada de serviços (NotFoundException) não vai propagar uma exceção do nível de acesso a dados(DbConcurrencyException) } // portando se uma exceção de nivel de acesso a dados acontecer a minha camada de serviço vai lançar uma exceção da camada dela