예제 #1
0
        private static int InserirDadosEmMassa()
        {
            Produto produto = new Produto
            {
                Ativo        = true,
                Descricao    = "Produto de teste",
                CodigoBarras = "1234567891234",
                Valor        = 10m,
                TipoProduto  = TipoProduto.MercadoriaParaRevenda
            };

            Cliente cliente = new Cliente
            {
                Nome     = "Angelo",
                CEP      = "12345789",
                Estado   = "SP",
                Cidade   = "Praia Grande",
                Telefone = "13997244863",
            };

            DbContext db = new Data.ApplicationContext();

            db.AddRange(new object[] { produto, cliente });

            int quantidadeLinhasAfetadas = db.SaveChanges();

            return(quantidadeLinhasAfetadas);
        }
예제 #2
0
        private static void AtualizarDadosDesconectos()
        {
            DbContext db = new Data.ApplicationContext();

            int cliente_id = 3;
            // Cliente cliente = db.Set<Cliente>().Find(cliente_id);

            // if (Object.Equals(cliente, null))
            // {
            //   Console.WriteLine($"Cliente de id {cliente_id} não encontrado.");
            //   return;
            // }

            Cliente cliente = new Cliente
            {
                Id = cliente_id,
            };

            Object clienteDesconecto = new
            {
                Nome     = "Cliente Desconecto",
                Telefone = "111111111"
            };

            db.Attach(cliente);
            db.Entry(cliente).CurrentValues.SetValues(clienteDesconecto);

            /**
             * Sempre irá atualizar,
             * pois o 'SetValues' está alterando o 'State' para "Modified"
             */

            db.SaveChanges();
        }
예제 #3
0
        private static void ConsultarDados()
        {
            DbContext db = new Data.ApplicationContext();

            // List<Cliente> consultaPorSintaxe = (
            //   from cliente
            //   in db.Set<Cliente>()
            //   where cliente.Id > 0
            //   select cliente
            // )
            // .AsNoTracking()
            // .ToList();

            List <Cliente> consultaPorMetodo = db.Set <Cliente>()
                                               .AsNoTracking()
                                               .Where(cliente => cliente.Id > 0)
                                               .ToList();

            /**
             * AsNoTracking
             *
             * Inibe o rastreio de objetos em memória.
             *
             * Apenas o 'Find' utiliza a consulta em memória,
             *  então o uso do 'AsNoTracking' força uma re-consulta
             *  no banco em caso de utilização do 'Find'.
             */
        }
예제 #4
0
        private static void CadastrarPedido()
        {
            DbContext db = new Data.ApplicationContext();

            Cliente cliente = db.Set <Cliente>().FirstOrDefault();
            Produto produto = db.Set <Produto>().FirstOrDefault();

            Pedido pedido = new Pedido
            {
                ClienteId  = cliente.Id,
                IniciadoEm = DateTime.Now,
                Observacao = "Pedido teste",
                Status     = StatusPedido.Finalizado,
                TipoFrete  = TipoFrete.SemFrete,
                Itens      = new List <PedidoItem>
                {
                    new PedidoItem
                    {
                        ProdutoId  = produto.Id,
                        Desconto   = 0,
                        Quantidade = 1,
                        Valor      = 10
                    }
                }
            };

            db.Set <Pedido>().Add(pedido);

            db.SaveChanges();
        }
예제 #5
0
        private static void ConsultarPedidoCarregamentoAdiantado()
        {
            DbContext db = new Data.ApplicationContext();

            List <Pedido> pedidos = db.Set <Pedido>()
                                    .Include(pedido => pedido.Itens)
                                    .ThenInclude(item => item.Produto)
                                    .ToList();

            Console.WriteLine(pedidos.Count);
        }
예제 #6
0
        private static void RemoverRegistroDesconecto()
        {
            DbContext db = new Data.ApplicationContext();

            int     cliente_id = 5;
            Cliente cliente    = new Cliente {
                Id = cliente_id
            };

            db.Entry <Cliente>(cliente).State = EntityState.Deleted;

            db.SaveChanges();
        }
예제 #7
0
        private static int InserirProduto()
        {
            Produto produto = new Produto()
            {
                Descricao    = "Produto de teste",
                Ativo        = true,
                CodigoBarras = "1234567891234",
                Valor        = 10m,
                TipoProduto  = TipoProduto.MercadoriaParaRevenda
            };

            Data.ApplicationContext db = new Data.ApplicationContext();

            db.Produtos.Add(produto);

            int quantidadeLinhasAfetadas = db.SaveChanges();

            return(quantidadeLinhasAfetadas);
        }
예제 #8
0
        private static void RemoverRegistro()
        {
            DbContext db = new Data.ApplicationContext();

            int     cliente_id = 3;
            Cliente cliente    = db.Set <Cliente>().Find(cliente_id);

            if (Object.Equals(cliente, null))
            {
                Console.WriteLine($"Cliente de id {cliente_id} não encontrado.");
                return;
            }

            // db.Set<Cliente>().Remove(cliente);
            // db.Remove(cliente);

            db.Entry(cliente).State = EntityState.Deleted;

            db.SaveChanges();
        }
예제 #9
0
        private static void AtualizarDados()
        {
            DbContext db = new Data.ApplicationContext();

            int cliente_id = 3;

            Cliente cliente = db.Set <Cliente>().Find(cliente_id);

            if (Object.Equals(cliente, null))
            {
                Console.WriteLine($"Cliente de id {cliente_id} não encontrado.");
                return;
            }

            cliente.Nome = "Angelo";

            // db.Set<Cliente>().Update(cliente);
            // Comentado para evitar a atualização de todas as colunas
            db.SaveChanges();
        }