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(); }
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(); }
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(); }