コード例 #1
0
        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));
        }
コード例 #2
0
        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