Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Excluir um objeto de uma lista que está relacionado a um projeto

Olá, Eu não estou conseguindo excluir um item de uma lista com o Entity Framework. Eu fui diretamente no banco e exclui sem problemas.

Aparece o seguinte erro The object cannot be deleted because it was not found in the ObjectStateManager.

Foi assim que eu fiz o meu método exclui:

        public void Excluir(EnvolvidosNoProjeto envolvido)
        {
            _db.EnvolvidosNoProjeto.Remove(envolvido);
            _db.SaveChanges();
        }

O erro acontece no Remove

Se alguém me ajudar solicionar eu agradeço!

1 resposta
solução!

Boa tarde galera, Eu consegui fazer a exclusão Fiz desta forma:

     public void Editar(Projeto projeto)
        {
            try
            {
                var doBanco = _db.Projetos.Find(projeto.ProjetoId);

                foreach (var add in projeto.ListaEnvolvidosNoProjeto)
                {
                    if (add.EnvolvidosNoProjetoId == 0)
                    {
                        doBanco.ListaEnvolvidosNoProjeto.Add(add);
                    }
                }

                var lista = new List<EnvolvidosNoProjeto>();
                foreach (var remove in doBanco.ListaEnvolvidosNoProjeto)
                {
                    if (!projeto.ListaEnvolvidosNoProjeto.Any(x => x.EnvolvidosNoProjetoId == remove.EnvolvidosNoProjetoId))
                    {
                        lista.Add(remove);
                    }
                }

                _db.EnvolvidosNoProjeto.RemoveRange(lista);
                _db.Entry(doBanco).CurrentValues.SetValues(projeto);
                _db.SaveChanges();
                _db.Dispose();
            }
            catch (Exception exception) { throw new Exception(exception.Message); }
        }

Mas se alguém tiver uma nova forma de fazer, é bem vinda sua opinião..