private static void LinqToEntitiesCount() { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; var query = from faixa in contexto.Faixas where faixa.Album.Artista.Nome == "Led Zeppelin" select faixa; //var quantidade = query.Count(); //Console.WriteLine("Led Zeppelin tem {0} músicas no banco de dados.", quantidade); var quantidade = contexto.Faixas.Count(); Console.WriteLine("O banco de dados tem {0} faixas de música", quantidade); quantidade = contexto.Faixas.Where(f => f.Album.Artista.Nome == "Led Zeppelin").Count(); Console.WriteLine("Led Zeppelin tem {0} músicas no banco de dados.", quantidade); quantidade = contexto.Faixas.Count(f => f.Album.Artista.Nome == "Led Zeppelin"); Console.WriteLine("Led Zeppelin tem {0} músicas no banco de dados.", quantidade); } Console.ReadKey(); }
private static void LinqToEntitiesMinMaxAvg() { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; // 3 idas até o banco de dados //var maiorVenda = contexto.NotasFiscais.Max(nf => nf.Total); //var menorVenda = contexto.NotasFiscais.Min(nf => nf.Total); //var vendaMedia = contexto.NotasFiscais.Average(nf => nf.Total); //Console.WriteLine("A maior venda é de R$ {0}", maiorVenda); //Console.WriteLine("A menor venda é de R$ {0}", menorVenda); //Console.WriteLine("A venda média é de R$ {0}", vendaMedia); var vendas = (from notaFiscal in contexto.NotasFiscais group notaFiscal by 1 into agrupado select new { MaiorVenda = agrupado.Max(nf => nf.Total), MenorVenda = agrupado.Min(nf => nf.Total), VendaMedia = agrupado.Average(nf => nf.Total) }).Single(); // 1 ida até o banco de dados Console.WriteLine("A maior venda é de R$ {0}", vendas.MaiorVenda); Console.WriteLine("A menor venda é de R$ {0}", vendas.MenorVenda); Console.WriteLine("A venda média é de R$ {0}", vendas.VendaMedia); } Console.ReadKey(); }
private static void LinqMetodosExtensao() { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; var vendaMedia = contexto.NotasFiscais.Average(nf => nf.Total); Console.WriteLine("Venda Média: {0}", vendaMedia); var query = from notaFiscal in contexto.NotasFiscais select notaFiscal.Total; var contagem = query.Count(); var queryOrdenada = query.OrderBy(total => total); var elementoCentral = queryOrdenada.Skip(contagem / 2).First(); var mediana = elementoCentral; Console.WriteLine("Mediana: {0}", mediana); } Console.ReadKey(); }
private static void LinqToEntitiesSum() { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; var query = from itemNotaFiscal in contexto.ItemsNotasFiscal where itemNotaFiscal.Faixa.Album.Artista.Nome == "Led Zeppelin" select new { totalDoItem = itemNotaFiscal.Quantidade * itemNotaFiscal.PrecoUnitario }; //foreach (var itemNotaFiscal in query) //{ // Console.WriteLine(itemNotaFiscal.totalDoItem); //} var totalDoArtista = query.Sum(q => q.totalDoItem); Console.WriteLine("Total do artista: R$ {0}", totalDoArtista); } Console.ReadKey(); }
private static void LinqToEntitiesJoin() { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; var textoBusca = "Led"; var query = from artista in contexto.Artistas join album in contexto.Albums on artista.ArtistaId equals album.ArtistaId where artista.Nome.Contains(textoBusca) select new { NomeArtista = artista.Nome, NomeAlbum = album.Titulo }; foreach (var item in query) { Console.WriteLine("{0}\t{1}", item.NomeArtista, item.NomeAlbum); } } Console.ReadKey(); }
private static void LinqToEntitiesGroupBy() { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; var query = from itemNotaFiscal in contexto.ItemsNotasFiscal where itemNotaFiscal.Faixa.Album.Artista.Nome == "Led Zeppelin" group itemNotaFiscal by itemNotaFiscal.Faixa.Album into agrupado let vendasPorAlbum = agrupado.Sum(a => a.Quantidade * a.PrecoUnitario) orderby vendasPorAlbum descending select new { TituloDoAlbum = agrupado.Key.Titulo, TotalPorAlbum = vendasPorAlbum }; foreach (var agrupado in query) { Console.WriteLine( "{0}\t{1}", agrupado.TituloDoAlbum.PadRight(40), agrupado.TotalPorAlbum ); } } Console.ReadKey(); }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { var textoBusca = "Led"; var query = from a in contexto.Artistas where a.Nome.Contains(textoBusca) select a; foreach (var artista in query) { Console.WriteLine("{0}\t{1}", artista.ArtistaId, artista.Nome); } var query2 = contexto.Artistas.Where(a => a.Nome.Contains(textoBusca)); Console.WriteLine(); foreach (var artista in query2) { Console.WriteLine("{0}\t{1}", artista.ArtistaId, artista.Nome); } Console.ReadKey(); } }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { var query = from inf in contexto.ItemsNotaFiscal where inf.Faixa.Album.Artista.Nome == "Led Zeppelin" group inf by inf.Faixa.Album into agrupado let vendasPorAlbum = agrupado.Sum(a => a.Quantidade * a.PrecoUnitario) orderby vendasPorAlbum descending select new { TituloDoAlbum = agrupado.Key.Titulo, TotalPorAlbum = vendasPorAlbum }; foreach (var agrupado in query) { Console.WriteLine("{0}\t{1}", agrupado.TituloDoAlbum.PadRight(40), agrupado.TotalPorAlbum); } Console.ReadKey(); } }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; var maiorVenda = contexto.NotasFiscais.Max(nf => nf.Total); var menorVenda = contexto.NotasFiscais.Min(nf => nf.Total); var vendaMedia = contexto.NotasFiscais.Average(nf => nf.Total); Console.WriteLine("A maior venda é de R$ {0}", maiorVenda); Console.WriteLine("A menor venda é de R$ {0}", menorVenda); Console.WriteLine("A venda média é de R$ {0}", vendaMedia); var vendas = (from nf in contexto.NotasFiscais group nf by 1 into agrupado select new { maiorVenda = agrupado.Max(nf => nf.Total), menorVenda = agrupado.Min(nf => nf.Total), vendaMedia = agrupado.Average(nf => nf.Total) }).Single(); Console.WriteLine("A maior venda é de R$ {0}", vendas.maiorVenda); Console.WriteLine("A menor venda é de R$ {0}", vendas.menorVenda); Console.WriteLine("A venda média é de R$ {0}", vendas.vendaMedia); } Console.ReadKey(); }
private static void LinqToEntitiesContextoJoinTakeLogSql() { using (var contexto = new AluraTunesEntities()) { var query = from genero in contexto.Generos select genero; foreach (var genero in query) { Console.WriteLine("{0}\t{1}", genero.GeneroId, genero.Nome); } var faixaEGenero = from genero in contexto.Generos join faixa in contexto.Faixas on genero.GeneroId equals faixa.GeneroId select new { genero, faixa }; faixaEGenero = faixaEGenero.Take(10); contexto.Database.Log = Console.WriteLine; Console.WriteLine(); foreach (var item in faixaEGenero) { Console.WriteLine("{0}\t{1}", item.faixa.Nome, item.genero.Nome); } } Console.ReadKey(); }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { var query = from g in contexto.Generos select g; foreach (var genero in query) { Console.WriteLine("{0}\t{1}", genero.GeneroId, genero.Nome); } var faixaEgenero = from g in contexto.Generos join f in contexto.Faixas on g.GeneroId equals f.GeneroId select new { f, g }; faixaEgenero = faixaEgenero.Take(10); contexto.Database.Log = Console.WriteLine; Console.WriteLine(); foreach (var item in faixaEgenero) { Console.WriteLine("{0}\t{1}", item.f.Nome, item.g.Nome); } } Console.ReadKey(); }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { GetFaixas(contexto, "Led Zeppelin", ""); Console.WriteLine(); GetFaixas(contexto, "Led Zeppelin", "Graffiti"); } }
private static void LinqMediana() { using (var contexto = new AluraTunesEntities()) { var mediana = contexto.NotasFiscais.Mediana(nf => nf.Total); Console.WriteLine("Mediana: {0}", mediana); } Console.ReadKey(); }
private static void GetFaixas(AluraTunesEntities contexto, string buscaArtista, string buscaAlbum) { var query = from faixa in contexto.Faixas where faixa.Album.Artista.Nome.Contains(buscaArtista) && (!string.IsNullOrEmpty(buscaAlbum) ? faixa.Album.Titulo.Contains(buscaAlbum) : true) orderby faixa.Album.Titulo, faixa.Nome descending select faixa; foreach (var faixa in query) { Console.WriteLine("{0}\t{1}", faixa.Album.Titulo.PadRight(40), faixa.Nome); } }
private static void LinqToEntitiesRefinandoConsultas() { using (var contexto = new AluraTunesEntities()) { GetFaixas(contexto, "Led Zeppelin", ""); Console.WriteLine(); GetFaixas(contexto, "Led Zeppelin", "Graffiti"); } Console.ReadKey(); }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { var query = from g in contexto.Generos select g; foreach (var genero in query) { Console.WriteLine("{0}\t{1}", genero.GeneroId, genero.Nome); } Console.WriteLine(); var FaixaEGenero = from g in contexto.Generos join f in contexto.Faixas on g.GeneroId equals f.GeneroId select new { f, g }; FaixaEGenero = FaixaEGenero.Take(10); // contexto.Database.Log = Console.WriteLine; foreach (var item in FaixaEGenero) { Console.WriteLine("{0}\t{1}", item.f.Nome, item.g.Nome); } Console.ReadKey(); Console.WriteLine(); var busca = "Led"; var artista = from a in contexto.Artistas where a.Nome.Contains(busca) select a; foreach (var item in artista) { Console.WriteLine("{0}\t{1}", item.ArtistaId, item.Nome); } Console.WriteLine(); var query2 = contexto.Artistas.Where(a => a.Nome.Contains(busca)); foreach (var item in query2) { Console.WriteLine("{0}\t{1}", item.ArtistaId, item.Nome); } Console.ReadKey(); } }
private static void GetFaixasSintaxeQuery(AluraTunesEntities contexto, string nomeArtista, string album) { var queryFiltroDinamico = from f in contexto.Faixas where (!string.IsNullOrEmpty(nomeArtista) ? f.Album.Artista.Nome.Contains(nomeArtista) : true) && (!string.IsNullOrEmpty(album) ? f.Album.Titulo.Contains(album) : true) orderby f.Nome, f.Album.Titulo select f; foreach (var faixa in queryFiltroDinamico) { Console.WriteLine("{0}\t{1}", faixa.Album.Titulo.PadRight(40), faixa.Nome); } }
private static void GetFaixas(AluraTunesEntities contexto, string buscaArtista, string buscaAlbum) { var query = from f in contexto.Faixas where f.Album.Artista.Nome.Contains(buscaArtista) select f; if (!string.IsNullOrEmpty(buscaAlbum)) { query = query.Where(q => q.Album.Titulo.Contains(buscaAlbum)); } foreach (var faixa in query) { Console.WriteLine("{0}\t{1}", faixa.Album.Titulo.PadRight(40), faixa.Nome); } }
private static void LinqToEntitiesSintaxeDeMetodo() { using (var contexto = new AluraTunesEntities()) { contexto.Database.Log = Console.WriteLine; var textoBusca = "Led"; var query = contexto.Artistas.Where(a => a.Nome.Contains(textoBusca)); foreach (var artista in query) { Console.WriteLine("{0}\t{1}", artista.ArtistaId, artista.Nome); } } Console.ReadKey(); }
private static void GetFaixas(AluraTunesEntities contexto, string buscaArtista, string buscaAlbum) { var query = from f in contexto.Faixas where f.Album.Artista.Nome.Contains(buscaArtista) && (!string.IsNullOrEmpty(buscaAlbum) ? f.Album.Titulo.Contains(buscaAlbum) : true) orderby f.Album.Titulo, f.Nome select f; //if (!string.IsNullOrEmpty(buscaAlbum)) //{ // query = query.Where(q => q.Album.Titulo.Contains(buscaAlbum)); //} //query = query.OrderBy(q => q.Album.Titulo).ThenByDescending(q => q.Nome); foreach (var faixa in query) { Console.WriteLine("{0}\t{1}", faixa.Album.Titulo.PadRight(40), faixa.Nome); } }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { var query = from f in contexto.Faixas where f.Album.Artista.Nome == "Led Zeppelin" select f; //var quantidade = query.Count(); //Console.WriteLine("Led Zeppelin tem {0} músicas no banco de dados.", quantidade); var quantidade = contexto.Faixas .Count(f => f.Album.Artista.Nome == "Led Zeppelin"); Console.WriteLine("Led Zeppelin tem {0} faixas de música.", quantidade); } Console.ReadKey(); }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { var query = from inf in contexto.ItemsNotaFiscal where inf.Faixa.Album.Artista.Nome == "Led Zeppelin" select new { totalDoItem = inf.Quantidade * inf.PrecoUnitario }; //foreach (var inf in query) //{ // Console.WriteLine("{0}", inf.totalDoItem); //} var totalDoArtista = query.Sum(q => q.totalDoItem); Console.WriteLine("Total do artista: R$ {0}", totalDoArtista); Console.ReadKey(); } }
private static void GetFaixas(AluraTunesEntities contexto, string nomeArtista, string album) { var queryFiltroDinamico = from f in contexto.Faixas select f; if (!string.IsNullOrEmpty(nomeArtista)) { queryFiltroDinamico = queryFiltroDinamico.Where(f => f.Album.Artista.Nome.Contains(nomeArtista)); } if (!string.IsNullOrWhiteSpace(album)) { queryFiltroDinamico = queryFiltroDinamico.Where(f => f.Album.Titulo.Contains(album)); } queryFiltroDinamico = queryFiltroDinamico.OrderBy(o => o.Album.Titulo).ThenBy(o => o.Nome); foreach (var faixa in queryFiltroDinamico) { Console.WriteLine("{0}\t{1}", faixa.Album.Titulo.PadRight(40), faixa.Nome); } }
private static void LinqToEntitiesWhere() { using (var contexto = new AluraTunesEntities()) { var textoBusca = "Led"; contexto.Database.Log = Console.WriteLine; var query = from artista in contexto.Artistas where artista.Nome.Contains(textoBusca) select artista; foreach (var artista in query) { Console.WriteLine("{0}\t{1}", artista.ArtistaId, artista.Nome); } } Console.ReadKey(); }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { var textoBusca = "Led"; var query = from a in contexto.Artistas join alb in contexto.Albums on a.ArtistaId equals alb.ArtistaId where a.Nome.Contains(textoBusca) select new { NomeArtista = a.Nome, NomeAlbum = alb.Titulo }; foreach (var item in query) { Console.WriteLine("{0}\t{1}", item.NomeArtista, item.NomeAlbum); } var query2 = from alb in contexto.Albums where alb.Artista.Nome.Contains(textoBusca) select new { NomeArtista = alb.Artista.Nome, NomeAlbum = alb.Titulo }; Console.WriteLine(); foreach (var album in query2) { Console.WriteLine("{0}\t{1}", album.NomeArtista, album.NomeAlbum); } Console.ReadKey(); } }
private static void FiltrandoRegistros() { var textoBusca = "Amor"; using (var context = new AluraTunesEntities()) { var albuns = context.Album.ToList(); var query = from albun in context.Album join faixa in context.Faixa on albun.AlbumId equals faixa.AlbumId /*Condição IN LINE * Mas poderia estar abaixo * query = query.orderby(f => f.nome) * */ where (!string.IsNullOrEmpty(textoBusca) ? faixa.Nome.Contains(textoBusca) : true) orderby faixa.Nome descending select new { albun, faixa }; //query = query.OrderBy(f => f.faixa.Nome).ThenByDescending(f => f.faixa.TipoMidiaId); query = query.Take(5); context.Database.Log = Console.WriteLine; foreach (var item in query) { Console.WriteLine("{0}\t{1}", item.faixa.Nome, item.albun.Titulo); } } }
private static void GroupBy() { using (var context = new AluraTunesEntities()) { var query = from inf in context.ItemNotaFiscal where inf.Faixa.Album.Artista.Nome == "Led Zeppelin" group inf by inf.Faixa.Album into agrupado let vendasporalbum = agrupado.Sum(f => f.Quantidade * f.PrecoUnitario) orderby vendasporalbum descending select new { Nome = agrupado.Key.Titulo, Total = vendasporalbum }; foreach (var inf in query) { Console.WriteLine("{0}\t{1}", inf.Nome.PadRight(40), inf.Total); } } }
static void Main(string[] args) { using (var contexto = new AluraTunesEntities()) { //Linq com sintaxe de método var query = contexto.Artistas.Where(a => a.Nome.Contains("Led")); foreach (var item in query) { Console.WriteLine("{0}\t{1}", item.ArtistaId, item.Nome); } Console.WriteLine(); //Linq com sintaxe de consulta var query2 = from a in contexto.Artistas where a.Nome.Contains("Led") select a; foreach (var item in query2) { Console.WriteLine("{0}\t{1}", item.ArtistaId, item.Nome); } Console.WriteLine(); var query3 = from g in contexto.Generos where g.Nome == "Rock" select g; foreach (var item in query3) { Console.WriteLine("{0}\t{1}", item.Nome, item.GeneroId); } } Console.ReadKey(); }
private static void TotalizandoDeFormaBurra() { decimal total = 0; using (var context = new AluraTunesEntities()) { var query = from inf in context.ItemNotaFiscal where inf.Faixa.Album.Artista.Nome == "Led Zeppelin" select inf; foreach (var inf in query) { total += (inf.Quantidade * inf.PrecoUnitario); Console.WriteLine("{0}\t{1}\t{2}", inf.Faixa.Album.Titulo.PadRight(40), inf.Quantidade, inf.PrecoUnitario); } Console.WriteLine("Total :" + total); //86,13 } }
static void Main(string[] args) { #region Linq To Entity //using (var contexto = new AluraTunesEntities()) //{ // var query = from g in contexto.Generos // select g; // foreach (var genero in query) // { // Console.WriteLine("{0}\t{1}", genero.GeneroId, genero.Nome); // } // Console.WriteLine(); // var faixaEGenero = from g in contexto.Generos // join f in contexto.Faixas on g.GeneroId equals f.GeneroId // select new // { // f, // g // }; // faixaEGenero = faixaEGenero.Take(10); // contexto.Database.Log = Console.WriteLine; // foreach (var item in faixaEGenero) // { // Console.WriteLine("{0}\t{1}", item.f.Nome, item.g.Nome); // } //} using (var contexto = new AluraTunesEntities()) { var textoBusca = "Led"; var query = from a in contexto.Artistas join alb in contexto.Albums on a.ArtistaId equals alb.ArtistaId where a.Nome.Contains(textoBusca) select new { NomeArtista = a.Nome, NomeAlbum = alb.Titulo }; foreach (var item in query) { Console.WriteLine("{0}\t{1}", item.NomeArtista, item.NomeAlbum); } Console.WriteLine(); var query2 = contexto.Artistas.Where(a => a.Nome.Contains(textoBusca)); foreach (var item in query2) { Console.WriteLine("{0}\t{1}", item.ArtistaId, item.Nome); } Console.WriteLine(); } #endregion #region Linq To XML //XElement root = XElement.Load(@"C:\Dev\Estudos\AluraTunes\AluraTunes\Data\AluraTunes.xml"); //var queryXML = from g in root.Element("Generos").Elements("Genero") // select g; //foreach (var genero in queryXML) //{ // Console.WriteLine("{0}\t{1}", genero.Element("GeneroId").Value, genero.Element("Nome").Value); //} //Console.WriteLine(); //var query = from g in root.Element("Generos").Elements("Genero") // join m in root.Element("Musicas").Elements("Musica") // on g.Element("GeneroId").Value equals m.Element("GeneroId").Value // select new // { // Musica = m.Element("Nome").Value, // Genero = g.Element("Nome").Value // }; //foreach (var musicaEGenero in query) //{ // Console.WriteLine("{0}\t{1}", musicaEGenero.Musica, musicaEGenero.Genero); //} #endregion #region Linq To Object //IList<Genero> generos = new List<Genero> //{ // new Genero{ Id = 1, Nome = "Rock"}, // new Genero{ Id = 2, Nome = "Reggae"}, // new Genero{ Id = 3, Nome = "Rock Progressivo"}, // new Genero{ Id = 4, Nome = "Punk Rock"}, // new Genero{ Id = 5, Nome = "Clássica"}, //}; //foreach (var genero in generos) //{ // if (genero.Nome.Contains("Rock")) // { // Console.WriteLine("{0}\t{1}", genero.Id, genero.Nome); // } //} //Console.WriteLine(); //var query = from g in generos // where g.Nome.Contains("Rock") // select g; //foreach (var genero in query) //{ // Console.WriteLine("{0}\t{1}", genero.Id, genero.Nome); //} //Console.WriteLine(); //IList<Musica> musicas = new List<Musica> //{ // new Musica { Id = 1, Nome= "Sweet Chield O'Mine", GeneroId = 1 }, // new Musica { Id = 2, Nome = "I Shot The Sheriff", GeneroId = 2}, // new Musica { Id = 3, Nome = "Danúbio Azul", GeneroId = 5}, //}; //var musicaQuery = from m in musicas // join g in generos on m.GeneroId equals g.Id // select new { // m, // g // }; //foreach (var musica in musicaQuery) //{ // Console.WriteLine("{0}\t{1}\t{2}", musica.m.Id, musica.m.Nome, musica.g.Nome); //} #endregion }