private static void IncluirPromocao() { using (var contexto = new LojaContext()) { //Acionando ao LOGGER !! SqlLoggerProvider.LogContext(contexto); var promocao = new Promocao(); promocao.Descricao = "Queima total Janeiro 2017"; promocao.DataInicio = new DateTime(2017, 01, 01); promocao.DataTermino = new DateTime(2017, 01, 31); var produtos = contexto .Produtos .Where(p => p.Categoria == "Bebidas") .ToList(); foreach (var item in produtos) { promocao.IncluiProduto(item); } contexto.Promocoes.Add(promocao); ExibeEntries(contexto.ChangeTracker.Entries()); contexto.SaveChanges(); } }
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); } } }
private static void ExibeProdutosDaPromocao() { using (var contexto2 = new LojaContext()) { //Acionando ao LOGGER !! SqlLoggerProvider.LogContext(contexto2); var promocao = contexto2 .Promocoes .Include(p => p.Produtos) //Pega os resultados dentro da Tabela 'PromocaoProduto' com INNER JOIN da tabela 'Promocao' .ThenInclude(pp => pp.Produto) //Pega os da tabela 'Produtos' relacionados com a tabela 'PromocaoProduto' com INNER JOIN na tabela 'Promocao' .FirstOrDefault(); Console.WriteLine("\nMostrando os produtos da promoção ..."); foreach (var item in promocao.Produtos) { Console.WriteLine(item.Produto); } } }