예제 #1
0
 private static void DeletandoProdutosUsandoEntity()
 {
     using (var contexto = new LojaContext())
     {
         List <Produto> produtos = contexto.Produtos.ToList();
         produtos.ForEach(p => contexto.Remove(p));
         contexto.SaveChanges();
     }
 }
예제 #2
0
        static void JoinUmParaUmMaisFiltro()
        {
            using (var contexto = new LojaContext())
            {
                var produto = contexto.Produtos.Include(p => p.Compras).Where(p => p.Id == 1).FirstOrDefault();
                contexto.Entry(produto).Collection(p => p.Compras).Query().Where(c => c.Quantidade > 5).Load();

                Console.WriteLine($"Mostrando as compras do produto {produto.Nome}");
            }
        }
예제 #3
0
        private static void GravarMuitosUsandoEntity()
        {
            Produto p = new Produto();

            p.Nome      = "Harry Potter e a Ordem da Fênix";
            p.Categoria = "Livros";
            p.Preco     = 19.89;

            Produto p2 = new Produto();

            p2.Nome      = "Senhor dos Anéis 1";
            p2.Categoria = "Livros";
            p2.Preco     = 19.89;

            Produto p3 = new Produto();

            p3.Nome      = "O Monge e o Executivo";
            p3.Categoria = "Livros";
            p3.Preco     = 19.89;

            using (var contexto = new LojaContext())
            {
                contexto.Produtos.AddRange(p, p2, p3);
                contexto.SaveChanges();

                /*
                 * exec sp_executesql N'SET NOCOUNT ON;
                 * DECLARE @toInsert0 TABLE ([Categoria] nvarchar(max), [Nome] nvarchar(max), [Preco] float, [_Position] [int]);
                 * INSERT INTO @toInsert0
                 * VALUES (@p0, @p1, @p2, 0),
                 * (@p3, @p4, @p5, 1),
                 * (@p6, @p7, @p8, 2);
                 *
                 * DECLARE @inserted0 TABLE ([Id] int, [_Position] [int]);
                 * MERGE [Produtos] USING @toInsert0 AS i ON 1=0
                 * WHEN NOT MATCHED THEN
                 * INSERT ([Categoria], [Nome], [Preco])
                 * VALUES (i.[Categoria], i.[Nome], i.[Preco])
                 * OUTPUT INSERTED.[Id], i._Position
                 * INTO @inserted0;
                 *
                 * SELECT [t].[Id] FROM [Produtos] t
                 * INNER JOIN @inserted0 i ON ([t].[Id] = [i].[Id])
                 * ORDER BY [i].[_Position];
                 *
                 * ',N'@p0 nvarchar(4000),@p1 nvarchar(4000),@p2 float,
                 * @p3 nvarchar(4000),@p4 nvarchar(4000),@p5 float,
                 * @p6 nvarchar(4000),@p7 nvarchar(4000),@p8 float',
                 * @p0=N'Livros',@p1=N'Harry Potter e a Ordem da Fênix',@p2=19,890000000000001,
                 * @p3=N'Livros',@p4=N'Senhor dos Anéis 1',@p5=19,890000000000001,
                 * @p6=N'Livros',@p7=N'O Monge e o Executivo',@p8=19,890000000000001
                 */
            }
        }
예제 #4
0
        private static void ListarCliente()
        {
            using (var context = new LojaContext())
            {
                var cliente = context.Clientes
                              .Include(c => c.EnderecoDeEntrega)
                              .FirstOrDefault();

                Console.WriteLine($"Endereco de Entrega: {cliente?.EnderecoDeEntrega}");
            }
        }
예제 #5
0
        private static void RecuperarProdutosUsandoEntity()
        {
            IList <Produto> produtos = null;

            using (var contexto = new LojaContext())
            {
                produtos = contexto.Produtos.ToList();
            }

            produtos.ToList().ForEach(p => Console.WriteLine(p));
        }
예제 #6
0
 //Recuperando
 private static void RecuperarProdutos()
 {
     using (var repo = new LojaContext())
     {
         IList <Produto> produtos = repo.Produtos.ToList();
         foreach (var item in produtos)
         {
             Console.WriteLine(item.Nome);
         }
     }
 }
 private static void RecuperaProdutos()
 {
     using (var repo = new LojaContext())
     {
         IList <Produto> produtos = repo.Produtos.ToList();
         Console.WriteLine("Total de produtos: {0} produto(s)", produtos.Count());
         foreach (var item in produtos)
         {
             Console.WriteLine(item.Nome);
         }
     }
 }
예제 #8
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome = "Suco de Laranja", Categoria = "Bebidas", PrecoUnitario = 8.79, Unidade = "Litros"
            };
            var p2 = new Produto()
            {
                Nome = "Café", Categoria = "Bebidas", PrecoUnitario = 12.00, Unidade = "Gramas"
            };
            var p3 = new Produto()
            {
                Nome = "Macarrão", Categoria = "Alimentos", PrecoUnitario = 6.40, Unidade = "Kilos"
            };

            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            // compra de 6 pães franceses
            //var paoFrances = new Produto();
            //paoFrances.Nome = "Pão Francês";
            //paoFrances.PrecoUnitario = 0.40;
            //paoFrances.Unidade = "Unidade";
            //paoFrances.Categoria = "Alimento";

            //var compra = new Compra();
            //compra.Quantidade = 6;
            //compra.Produto = paoFrances;
            //compra.Preco = paoFrances.PrecoUnitario * compra.Quantidade;

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                //contexto.Compras.Add(compra);
                //contexto.Promocoes.Add(promocaoDePascoa);
                var promocao = contexto.Promocoes.Find(1); // id 1 na Promocoes table.
                contexto.Promocoes.Remove(promocao);

                //ExibeEntries(contexto.ChangeTracker.Entries());

                contexto.SaveChanges();
            }
        }
예제 #9
0
 private static void RecuperarProdutos()
 {
     using (var repo = new LojaContext()){
         IList <Produto> produtos = repo.Produtos.ToList();
         foreach (var item in produtos)
         {
             Console.WriteLine("Possui {0} produtos: ", produtos.Count);
             Console.WriteLine(item.Nome);
             Console.ReadKey();
         }
     }
 }
예제 #10
0
        private static void PegandoEnderecoDeUmCliente()
        {
            using (var context = new LojaContext())
            {
                var cliente = context
                              .Clientes
                              .Include(c => c.Endereco)
                              .FirstOrDefault();

                Console.WriteLine($"Endereco de entrega do cliente {cliente.Nome}: {cliente.Endereco.Logradouro}");
            }
        }
예제 #11
0
 private static void ExcluirProdutos()
 {
     using (var context = new LojaContext())
     {
         IList <Produto> produtos = context.Produtos.ToList();
         foreach (var produto in produtos)
         {
             context.Produtos.Remove(produto);
             context.SaveChanges();
         }
     }
 }
예제 #12
0
 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();
     }
 }
예제 #13
0
        private static void AdicionarProduto(LojaContext contexto)
        {
            var produto = new Produto()
            {
                Nome          = "Pasta de Dente",
                Categoria     = "Higiene",
                PrecoUnitario = 1.99
            };

            contexto.Add(produto);
            contexto.SaveChanges();
        }
예제 #14
0
        public static void Main(string[] args)
        {
            //var paoFrances = new Produto();
            //paoFrances.Categoria = "Padaria";
            //paoFrances.Nome = "Pão Frances";
            //paoFrances.PrecoUnitario = 0.33;
            //paoFrances.Unidade = "Unidade";

            //var compra = new Compra();
            //compra.Quantidade = 6;
            //compra.Produto = paoFrances;
            //compra.Preco = paoFrances.PrecoUnitario * compra.Quantidade;

            var produto1 = new Produto()
            {
                Nome = "Batata", Categoria = "Vegetal", PrecoUnitario = 1.55, Unidade = "Kilo"
            };
            var produto2 = new Produto()
            {
                Nome = "Alho", Categoria = "Vegetal", PrecoUnitario = 1.25, Unidade = "gramas"
            };
            var produto3 = new Produto()
            {
                Nome = "Cebola", Categoria = "Vegetal", PrecoUnitario = 1.90, Unidade = "gramas"
            };

            var promocaoPascoa = new Promocao();

            promocaoPascoa.Descricao   = "Pascoa Feliz";
            promocaoPascoa.DataInicio  = DateTime.Now;
            promocaoPascoa.DataTermino = DateTime.Now.AddMonths(4);


            promocaoPascoa.IncluiProduto(produto1);



            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                contexto.Promocoes.Add(promocaoPascoa);
                contexto.SaveChanges();

                //contexto.Compras.Add(compra);
                ExibeEntries(contexto.ChangeTracker.Entries());
                contexto.SaveChanges();
                Console.ReadLine();
            }
        }
예제 #15
0
        private static void AtualizarProduto()
        {
            Produto produtos = null;

            using (var contexto = new LojaContext())
            {
                produtos = contexto.Produtos.First();
                Console.WriteLine(produtos);
                produtos.Nome = "Harry Potter e a Ordem da Fênix";
                contexto.Produtos.Update(produtos);
                contexto.SaveChanges();
            }
        }
        private static void RecuperandoProdutos()
        {
            using (var context = new LojaContext())
            {
                List <Produto> produtos = context.Produtos.ToList();

                Console.WriteLine("Foram encontrados {0} produtos", produtos.Count());
                foreach (Produto p in produtos)
                {
                    Console.WriteLine(p.Nome);
                }
            }
        }
        private static void ExibiProdutosDaPromocao()
        {
            using (var contexto2 = new LojaContext())
            {
                //select com Join na tabela Produto
                var promocao = contexto2.Promocoes.Include(p => p.Produtos).ThenInclude(pp => pp.Produto).FirstOrDefault();

                foreach (var item in promocao.Produtos)
                {
                    Console.WriteLine(item.Produto);
                }
            }
        }
예제 #18
0
        static void Main(string[] args)
        {
            using (var contexto = new LojaContext())
            {
                LogSql(contexto);
                //Produtos da Promocao
                var promocao = contexto.Promocoes
                               .Include(p => p.Produtos)
                               .ThenInclude(pp => pp.Produto)
                               .FirstOrDefault();

                Console.WriteLine($"Produtos da promoção {promocao.Descricao}");
                foreach (var item in promocao.Produtos)
                {
                    Console.WriteLine(item.Produto);
                }

                //Endereço do Cliente
                var cliente = contexto.Clientes
                              .Include(c => c.Endereco)
                              .FirstOrDefault();
                Console.WriteLine($"Endereço do cliente {cliente.Nome}:");
                Console.WriteLine($"{cliente.Endereco.Rua}");

                //Compras do Produto
                var produto = contexto.Produtos
                              .Where(p => p.Id == 3002)
                              .Include(p => p.Compras)
                              .First();
                Console.WriteLine($"Compras do produto {produto.Nome}");
                foreach (var compra in produto.Compras)
                {
                    Console.WriteLine($"{compra.Quantidade} {compra.Produto.Unidade} de {compra.Produto.Nome} no valor de {compra.Preco}");
                }

                //Compras acima de 2 reais do Produto
                var p1 = contexto.Produtos
                         .Where(p => p.Id == 3002)
                         .FirstOrDefault();
                contexto.Entry(p1)
                .Collection(p => p.Compras)
                .Query()
                .Where(c => c.Preco > 3.0)
                .Load();
                Console.WriteLine($"Compras do produto {produto.Nome} com condicional");
                foreach (var compra in p1.Compras)
                {
                    Console.WriteLine($"{compra.Quantidade} {compra.Produto.Unidade} de {compra.Produto.Nome} no valor de {compra.Preco}");
                }
            }
        }
예제 #19
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto
            {
                Nome          = "Suco de Laranja",
                Categoria     = "Bebidas",
                PrecoUnitario = 8.79,
                Unidade       = "Litros"
            };

            var p2 = new Produto
            {
                Nome          = "Café",
                Categoria     = "Bebidas",
                PrecoUnitario = 12.45,
                Unidade       = "Gramas"
            };

            var p3 = new Produto
            {
                Nome          = "Macarrão",
                Categoria     = "Alimentos",
                PrecoUnitario = 4.23,
                Unidade       = "Gramas"
            };

            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                // contexto.Promocoes.Add(promocaoDePascoa);

                var promocao = contexto.Promocoes.First();
                contexto.Promocoes.Remove(promocao);
                contexto.SaveChanges();
            }

            Console.ReadLine();
        }
예제 #20
0
        private static void NParaN()
        {
            var promocao = new Promocao();

            promocao.Descricao   = "Páscoa Feliz";
            promocao.DataInicial = DateTime.Now;
            promocao.DataFinal   = DateTime.Now.AddMonths(3);
            var p1 = new Produto()
            {
                Nome          = "Barra de Chocolate",
                Categoria     = "Alimento",
                PrecoUnitario = 5.0,
                Unidade       = "gramas"
            };

            var p2 = new Produto()
            {
                Nome          = "Boneca Bebê",
                Categoria     = "Brinquedo",
                PrecoUnitario = 89.90,
                Unidade       = "Unidade"
            };

            var p3 = new Produto()
            {
                Nome          = "Ovo de Páscoa",
                Categoria     = "Alimento",
                PrecoUnitario = 35.0,
                Unidade       = "gramas"
            };

            promocao.IncluiProduto(p1);
            promocao.IncluiProduto(p2);
            promocao.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                var entries = contexto.ChangeTracker.Entries();

                var promo = contexto.Promocoes.First();
                ImprimeEstados(entries);
                contexto.Remove(promo);
                ImprimeEstados(entries);
                contexto.SaveChanges();
                ImprimeEstados(entries);
            }
        }
예제 #21
0
        private static void AtualizarProduto()
        {
            GravarUsandoEntity();
            RecuperaProdutos();

            using (var repo = new LojaContext())
            {
                Produto primeiro = repo.Produtos.ToList().First();
                primeiro.Nome = "Cassino Royale - Editado";
                repo.Produtos.Update(primeiro);
                repo.SaveChanges();
            }
            RecuperaProdutos();
        }
예제 #22
0
        private static void RecuperarDadosUmParaUm()
        {
            using (var context = new LojaContext())
            {
                GerarLogSqlEntity(context);

                var cliente = context
                              .Clientes
                              .Include(c => c.EnderecoDeEntrega)
                              .FirstOrDefault();

                Console.WriteLine($"Cliente: {cliente.Nome}, Endereço: {cliente.EnderecoDeEntrega.Logradouro}");
            }
        }
예제 #23
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome          = "Suco de laranja",
                Categoria     = "Bebidas",
                PrecoUnitario = 8.5,
                Unidade       = "Litro"
            };
            var p2 = new Produto()
            {
                Nome          = "Cafe",
                Categoria     = "Bebidas",
                PrecoUnitario = 10.6,
                Unidade       = "Pacote"
            };
            var p3 = new Produto()
            {
                Nome          = "Macarrao",
                Categoria     = "Alimentos",
                PrecoUnitario = 3.2,
                Unidade       = "Pacote"
            };


            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                contexto.Promocoes.Add(promocaoDePascoa);

                //var promocao = contexto.Promocoes.Find(1);
                //contexto.Promocoes.Remove(promocao);

                ExibeEntries(contexto.ChangeTracker.Entries());
                contexto.SaveChanges();
            }
        }
예제 #24
0
        private static void AtualizarProduto()
        {
            GravarUsandoEntity();
            RecuperarProdutos();

            using (var repo = new LojaContext())
            {
                Produto produto = repo.Produtos.First();
                produto.Nome = "editado";
                repo.Produtos.Update(produto);
                repo.SaveChanges();
            }
            RecuperarProdutos();
        }
예제 #25
0
        private static void GravarUsandoEntity()
        {
            Produto p = new Produto();

            p.Nome      = "Harry Potter e a Ordem da Fênix";
            p.Categoria = "Livros";
            p.Preco     = 19.89;

            using (var contexto = new LojaContext())
            {
                contexto.Produtos.Add(p);
                contexto.SaveChanges();
            }
        }
예제 #26
0
        static void Main(string[] args)
        {
            using (var contexto = new LojaContext())
            {
                //Acionando ao LOGGER !!
                SqlLoggerProvider.LogContext(contexto);

                var cliente = contexto
                              .Clientes
                              .Include(c => c.EnderecoDeEntrega)
                              .FirstOrDefault();

                Console.WriteLine($"Endereco de Entrega: {cliente.EnderecoDeEntrega.Logradouro}");

                /////////////////////////////////////////////
                //Pegar as compras de um produto !!
                //var produto = contexto
                //    .Produtos
                //    .Where(p => p.Id == 3002)
                //    .Include(p => p.Compras)
                //    .FirstOrDefault();

                //Console.WriteLine("## Pegar as compras de um produto !!");
                //Console.WriteLine($"Mostrando as Compras do Produto: {produto.Nome}");
                //foreach (var item in produto.Compras)
                //{
                //    Console.WriteLine("\t" + item);
                //}

                /////////////////////////////////////////////
                //Pegar as compras acima de um valor para um produto !!
                var produto2 = contexto
                               .Produtos
                               .Where(p => p.Id == 3002)
                               .FirstOrDefault();

                contexto.Entry(produto2)
                .Collection(p => p.Compras)
                .Query()            //tranforma em IQueryable !!
                .Where(c => c.Preco > 10)
                .Load();

                Console.WriteLine("## Pegar as compras acima de um valor para um produto !!");
                Console.WriteLine($"Mostrando as Compras do Produto: {produto2.Nome}");
                foreach (var item in produto2.Compras)
                {
                    Console.WriteLine("\t" + item);
                }
            }
        }
예제 #27
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome = "Suco de laranja", Categoria = "Bebidas", PrecoUnitario = 8.79, Unidade = "Litros"
            };
            var p2 = new Produto()
            {
                Nome = "Cafe", Categoria = "Bebidas", PrecoUnitario = 12.45, Unidade = "Gramas"
            };
            var p3 = new Produto()
            {
                Nome = "Macarrao", Categoria = "Alimentos", PrecoUnitario = 4.25, Unidade = "Gramas"
            };


            var promocaoDePacoa = new Promocao();

            promocaoDePacoa.Descricao   = "Pascoa feliz";
            promocaoDePacoa.DataInicio  = DateTime.Now;
            promocaoDePacoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePacoa.IncluirProduto(p1);
            promocaoDePacoa.IncluirProduto(p2);
            promocaoDePacoa.IncluirProduto(p3);

            var paoFrances = new Produto()
            {
                Nome          = "Pão Frances",
                PrecoUnitario = 0.40,
                Unidade       = "Unidade",
                Categoria     = "Padaria"
            };

            //var compra = new Compra();
            //compra.Quantidade = 6;
            //compra.Produto = paoFrances;
            //compra.Preco = paoFrances.PrecoUnitario * compra.Quantidade;

            using (var contexto = new LojaContext())
            {
                //contexto.Produtos.Add(promocaoDePacoa);
                var promocao = contexto.Promocoes.Find(3);
                contexto.Promocoes.Remove(promocao);


                contexto.SaveChanges();
            }
        }
예제 #28
0
        private static void GravarUsandoEntity()
        {
            var produto = new Produto
            {
                Nome          = "Casino Royale",
                Categoria     = "Filmes",
                PrecoUnitario = 15.99
            };

            using (var context = new LojaContext())
            {
                context.Produtos.Add(produto);
                context.SaveChanges();
            }
        }
예제 #29
0
        private static void ExibeProdutosDaPromocao()
        {
            using (var contexto = new LojaContext())
            {
                var promocao = contexto
                               .Promocoes
                               .Include("Produtos.Produto")
                               .FirstOrDefault();

                foreach (var item in promocao.Produtos)
                {
                    Console.WriteLine(item.Produto);
                }
            }
        }
        private static void AtualizaProduto()
        {
            GravarUsandoAdoNet();
            RecuperandoProdutos();

            using (var context = new LojaContext())
            {
                Produto p = context.Produtos.First();
                p.Nome = p.Nome + "  Edited";

                context.Produtos.Update(p);
                context.SaveChanges();
            }
            RecuperandoProdutos();
        }