示例#1
0
        private static void CadastrarPedido()
        {
            using var db = new Data.ApplicationContext();

            var cliente = db.Clientes.FirstOrDefault();
            var produto = db.Produtos.FirstOrDefault();

            var pedido = new Pedido
            {
                ClientId     = cliente.Id,
                IniciadoEM   = DateTime.Now,
                FinalizadoEM = DateTime.Now,
                Observacao   = "Pedido Teste",
                Status       = StatusPedido.Analise,
                TipoFrete    = TipoFrete.SemFrete,
                Itens        = new List <PedidoItem>
                {
                    new PedidoItem
                    {
                        ProdutoId  = produto.Id,
                        Desconto   = 0,
                        Quantidade = 1,
                        Valor      = 10,
                    }
                }
            };

            db.Pedidos.Add(pedido);

            db.SaveChanges();
        }
示例#2
0
        private static void ConsultarPedidoCarregamentoAdiantado()
        {
            using var db = new Data.ApplicationContext();
            var pedidos = db
                          .Pedidos
                          .Include(p => p.Itens)
                          .ThenInclude(p => p.Produto)
                          .ToList();

            Console.WriteLine(pedidos.Count);
        }
示例#3
0
        static void Main(string[] args)
        {
            using var db = new Data.ApplicationContext();
            //db.Database.Migrate(); // executa as migrações. Não usar em prod.
            var existe = db.Database.GetPendingMigrations().Any(); // checando se existe migração pendente

            //InserirDados();
            //InserirDadosEmMassa();
            //ConsultarDados();
            //CadastrarPedido();
            //ConsultarPedidoCarregamentoAdiantado();
            //AtualizarDados();
            RemoverRegistro();
        }
示例#4
0
        private static void InserirDadosEmMassa()
        {
            var produto = new Produto
            {
                Descricao    = "Produto Teste",
                CodigoBarras = "1234567891231",
                Valor        = 10m,
                TipoProduto  = TipoProduto.MercadoriaParaRevenda,
                Ativo        = true
            };

            var cliente = new Cliente
            {
                Nome     = "Leonardo Souza",
                CEP      = "99999000",
                Cidade   = "São Paulo",
                Estado   = "SP",
                Telefone = "99000001111",
            };

            var listaCliente = new List <Cliente>()
            {
                new Cliente
                {
                    Nome     = "Leonardo 2",
                    CEP      = "99999000",
                    Cidade   = "São Paulo",
                    Estado   = "SP",
                    Telefone = "99000001111",
                },
                new Cliente
                {
                    Nome     = "Leonardo 3",
                    CEP      = "99999000",
                    Cidade   = "São Paulo",
                    Estado   = "SP",
                    Telefone = "99000001111",
                },
            };

            using var db = new Data.ApplicationContext();
            //db.AddRange(produto, cliente);
            //db.Set<Cliente>().AddRange(listaCliente);
            db.Clientes.AddRange(listaCliente);

            var registros = db.SaveChanges();

            Console.WriteLine($"Total Registro(s): {registros}");
        }
示例#5
0
        private static void RemoverRegistro()
        {
            using var db = new Data.ApplicationContext();

            //var cliente = db.Clientes.Find(2);
            var cliente = new Cliente {
                Id = 3
            };

            //db.Clientes.Remove(cliente);
            //db.Remove(cliente);
            db.Entry(cliente).State = EntityState.Deleted;

            db.SaveChanges();
        }
示例#6
0
        private static void ConsultarDados()
        {
            using var db = new Data.ApplicationContext();
            //var consultaPorSintaxe = (from c in db.Clientes where c.Id>0 select c).ToList();
            var consultaPorMetodo = db.Clientes
                                    //.AsNoTracking() // se der um find não olha em memória, vai pro bd consultar
                                    .Where(p => p.Id > 0)
                                    .OrderBy(p => p.Id)
                                    .ToList();

            foreach (var cliente in consultaPorMetodo)
            {
                Console.WriteLine($"Consultando Cliente: {cliente.Id}");
                db.Clientes.Find(cliente.Id);
                //db.Clientes.FirstOrDefault(p => p.Id == cliente.Id);
            }
        }
示例#7
0
        private static void InserirDados()
        {
            var produto = new Produto
            {
                Descricao    = "Produto teste",
                CodigoBarras = "1234567891231",
                Valor        = 10m,
                TipoProduto  = ValueObjects.TipoProduto.MercadoriaParaRevenda,
                Ativo        = true
            };

            using var db = new Data.ApplicationContext();

            // 4 opções para add um registro
            // indicado usar as 2 primeiras...

            // db.Produtos.Add(produto); // 1-forma comum
            // db.Set<Produto>().Add(produto); // 2-étodo genérico
            // db.Entry(produto).State = EntityState.Added; // 3-rastrando uma entidade
            db.Add(produto);// 4-direto pela instancia do contexto
            db.SaveChanges();
        }
示例#8
0
        private static void AtualizarDados()
        {
            using var db = new Data.ApplicationContext();
            //var cliente = db.Clientes.Find(1);

            var cliente = new Cliente
            {
                Id = 1
            };

            var clienteDesconectado = new
            {
                Nome     = "Cliente Desconectado Passo 3",
                Telefone = "7966669999"
            };

            db.Attach(cliente);                                             // começa a ser rastrado...pq não fomos no banco para buscar esse cliente
            db.Entry(cliente).CurrentValues.SetValues(clienteDesconectado); // atualiza só o necessário...

            // não precisa desse comando...
            //db.Clientes.Update(cliente); // isso atualiza tds os campos - não é uma boa opção
            db.SaveChanges();
        }