1
resposta

Ao tentar decrementar a quantidade do produto em estoque recebo o erro: Validation failed for one or more entities..

Não tenho experiência em .NET nem conhecimento do Entity Framework, e este é o primeiro curso que estou fazendo na Allura, então peço desculpas se minha dificuldade for de alguma forma óbvia...

Eu implementei a função de decremento conforme as instruções do módulo de Ajax do curso de MVC:

        public ActionResult DecrementaQtd(int Id)
        {
            ProdutosDAO dao = new ProdutosDAO();
            Produto produto = dao.BuscaPorId(Id);
            produto.Quantidade--;
            dao.Atualiza(produto);
            return Json(produto);
        }

Só que dentro da função Atualiza, do objeto dao, sempre ocorre um erro ao executar o comando contexto.SaveChanges():

        public void Atualiza(Produto produto)
        {
            using (var contexto = new EstoqueContext())
            {
                contexto.Entry(produto).State = System.Data.Entity.EntityState.Modified;
                contexto.SaveChanges();
            }
        }

O erro é o seguinte:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

Alguma idéia do que pode estar provocando este erro e de como evitá-lo? Será algo que esteja faltando na minha instalação ou no meu projeto?

Estou usando o projeto CaelumEstoque, alterando o código conforme o prosseguimento do curso.

1 resposta

Oi Maykon, tenta executar o método GetValidationErrors() no seu contexto e verifica o que ele retorna.

contexto.GetValidationErrors()

Cola a saída aqui assim consigo te ajudar melhor.

Abraços e bons estudos.