Example #1
0
        public void Executar()
        {
            Titulo.Exibir("INNER_JOIN");

            #region Linq

            Titulo.ExibirSub("LINQ");

            List <Vendedor> vendedores = Vendedor.ObterTodos().ToList();

            vendedores.Add(new Vendedor {
                Id = 20, PrimeiroNome = "Carlos", UltimoNome = "Silva", VendasSemestrais = 800
            });
            vendedores.Add(new Vendedor {
                Id = 21, PrimeiroNome = "Sandro", UltimoNome = "Silva", VendasSemestrais = 800, RegiaoId = 5
            });
            vendedores.Add(new Vendedor {
                Id = 22, PrimeiroNome = "Antonio", UltimoNome = "Silva", VendasSemestrais = 800, RegiaoId = 8
            });

            var grupo = vendedores
                        .Join(Regiao.ObterTodos(),
                              v => v.RegiaoId,
                              r => r.Id,
                              (v, r) => new
            {
                Vendedor = $"{v.PrimeiroNome} {v.UltimoNome}",
                Regiao   = r.Nome
            });

            foreach (var item in grupo)
            {
                Console.WriteLine($"{item.Vendedor} - {item.Regiao}");
            }

            #endregion

            #region Sql

            Titulo.ExibirSub("SQL");

            var grupoSql = from v in Vendedor.ObterTodos()
                           join r in Regiao.ObterTodos()
                           on v.RegiaoId equals r.Id
                           select new
            {
                Vendedor = $"{v.PrimeiroNome} {v.UltimoNome}",
                Regiao   = r.Nome
            };

            foreach (var item in grupoSql)
            {
                Console.WriteLine($"{item.Vendedor} - {item.Regiao}");
            }

            #endregion

            Console.ReadKey();
        }
Example #2
0
        public void Executar()
        {
            Titulo.Exibir("GROUP_JOIN");

            var vendedores = Vendedor.ObterTodos();

            #region Linq

            Titulo.ExibirSub("LINQ");
            var grupo = Regiao.ObterTodos()
                        .GroupJoin(vendedores,
                                   r => r.Id,
                                   v => v.RegiaoId,
                                   (regiao, vendedor) => new {
                Vendedor = vendedor,
                Regiao   = regiao
            });

            foreach (var item in grupo)
            {
                Console.WriteLine(item.Regiao.Nome);
                foreach (var vendedor in item.Vendedor)
                {
                    Console.WriteLine($"\t {vendedor.PrimeiroNome} {vendedor.UltimoNome}");
                }
                Console.WriteLine();
            }

            #endregion

            #region Sql

            Titulo.ExibirSub("SQL");
            var grupoSql = from r in Regiao.ObterTodos()
                           join v in Vendedor.ObterTodos()
                           on r.Id equals v.RegiaoId into vGrupo
                           select new
            {
                Vendedor = vGrupo,
                Regiao   = r
            };

            foreach (var item in grupoSql)
            {
                Console.WriteLine(item.Regiao.Nome);
                foreach (var vendedor in item.Vendedor)
                {
                    Console.WriteLine($"\t {vendedor.PrimeiroNome} {vendedor.UltimoNome}");
                }
                Console.WriteLine();
            }

            #endregion

            Console.ReadKey();
        }
Example #3
0
        public void Executar()
        {
            Titulo.Exibir("LEFT_JOIN");

            List <Vendedor> vendedores = Vendedor.ObterTodos().ToList();

            #region Linq

            Titulo.ExibirSub("LINQ");

            var grupo = vendedores
                        .GroupJoin(Regiao.ObterTodos(),
                                   v => v.RegiaoId,
                                   r => r.Id,
                                   (ve, re) => new
            {
                ve,
                re
            })
                        .SelectMany(x => x.re.DefaultIfEmpty(),
                                    (vendedor, regiao) => new
            {
                Nome       = $"{vendedor.ve.PrimeiroNome} {vendedor.ve.UltimoNome}",
                RegiaoNome = (regiao == null) ? "Sem região" : regiao.Nome
            });

            foreach (var item in grupo)
            {
                Console.WriteLine($"{item.Nome} \t {item.RegiaoNome}");
            }

            #endregion

            #region Sql

            Titulo.ExibirSub("SQL");

            var grupoSql = from v in vendedores
                           join r in Regiao.ObterTodos()
                           on v.RegiaoId equals r.Id into vGrupo
                           from r in vGrupo.DefaultIfEmpty()
                           select new
            {
                Nome       = $"{v.PrimeiroNome} {v.UltimoNome}",
                RegiaoNome = (r == null) ? "Sem região" : r.Nome
            };

            foreach (var item in grupoSql)
            {
                Console.WriteLine($"{item.Nome} \t {item.RegiaoNome}");
            }

            #endregion

            Console.ReadKey();
        }