Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Exclusão de um produto específico.

Para excluir todos os produtos temos:

private static void ExcluirProdutos()
{
    using(var repo = new LojaContext())
    {
        IList<Produto> produtos = repo.Produtos.ToList();
        foreach(var item in produtos)
        {
            repo.Produtos.Remove(item);
        }

        repo.SaveChanges();
    }
}

Como ficaria o código para excluir somente um produto da lista?

3 respostas
solução!

Olá Pablo,

Enquanto fazia a parte do curso de manipulação de objetos tive a mesma curiosidade e cheguei na seguinte lógica:

        private static void ExcluirProdutosPorId()
        {
            using (var repo = new ProdutoDAOEntity())
            {
                IList<Produto> produtos = repo.Produtos();
                var id = 4003;
                foreach (var item in produtos)
                {
                    if (item.Id == id)
                    {
                        repo.Remover(item);
                    }
                }
            }
        }

No caso teria que ser passado o Id do item que fosse desejado a exclusão, não sei se foi a melhor das soluções porém foi por essa que cheguei.

Boa tarde Magno! No caso, resolveu o problema. Vlw.

Boa noite, Pablo.

Criei uma solução também para abranger um pouco mais a imaginação de formas que poderíamos criar para Excluir esse livro.

static void Main()
        {  
            SelectUsandoEntity();

            Console.WriteLine("Tecle enter para finalizar...");
            Console.ReadLine();
        }

        private static void DeleteUsandoEntity()
        {
            using (var contextoDB = new LojaContex())
            {
                IList<Produto> produtos = contextoDB.Produtos.ToList();

                Console.WriteLine("Digite o ID do livro que deseja excluir: ");
                var id = int.Parse(Console.ReadLine());
                foreach (var item in produtos)
                {
                    if (item.Id == id)
                    {
                        contextoDB.Remove(item);
                    }
                    //contextoDB.Produtos.Remove(item);
                }
                contextoDB.SaveChanges();
                Console.WriteLine("Excluindo...");
            }
        }

        private static void SelectUsandoEntity()
        {
            using(var contextoDB = new LojaContex())
            {
                IList<Produto> produtos = contextoDB.Produtos.ToList();
                Console.WriteLine($"Livros em estoque: {contextoDB.Produtos.Count()}");
                foreach (var item in produtos)
                {
                    Console.WriteLine($"ID:{item.Id} - Nome:{item.Nome}");
                }
                IdLivroExclusão();
            }
        }

        public static void IdLivroExclusão()
        {
            var resposta = " ";
            Console.WriteLine("Deseja excluir algum livro? " + "y/n");
            resposta = Console.ReadLine();

            if (resposta != " ")
            {
                switch (resposta)
                {
                    case "y":
                    case "Y":
                        DeleteUsandoEntity();
                        Console.WriteLine("Excluindo...");
                        System.Threading.Thread.Sleep(1000);
                        break;

                    case "n":
                    case "N":
                        Console.WriteLine("Finalizando aplicação. . .");
                        System.Threading.Thread.Sleep(1000);
                        break;
                }
            }

        }

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Da pra usar essa mesma lógica para os outros métodos de entrada que seguem o conceito CRUD.