Пример #1
0
        public static void ContarFaixas(AluraTunesContext context, string buscaArsitas, string buscaAlbum)
        {
            #region MétodoPorConsulta
            var query = from f in context.Faixas
                        where f.Album.Artista.Nome.Contains(buscaArsitas)
                        select f;

            var quantidade = query.Count();
            System.Console.WriteLine(quantidade);

            System.Console.WriteLine("Usando Count com query syntax");

            var queryCount = (from f in context.Faixas
                              where f.Album.Artista.Nome.Contains(buscaArsitas)
                              select f).Count();
            System.Console.WriteLine(queryCount);

            #endregion


            #region MétodoPorFunção
            var quantidadeFuncao = context.Faixas.Where(x => x.Album.Artista.Nome.Contains("Led")).Count();
            System.Console.WriteLine(quantidadeFuncao);

            System.Console.WriteLine("SEM USO DO WHERE");

            var quantidadeFuncao2 = context.Faixas.Count(x => x.Album.Artista.Nome.Contains("Led"));
            System.Console.WriteLine(quantidadeFuncao2);
            #endregion

            //MÉTODO POR FUNÇÃO SE MOSTROU SER 52 MS MAIS RÁPIDO QUE O MÉTODO DE CONSULTA.
        }
Пример #2
0
        public static void Exemplos(AluraTunesContext context, string buscaArsitas, string buscaAlbum)
        {
            var query = from g in context.Generos
                        select g;

            foreach (var generos in query)
            {
                // System.Console.WriteLine("{0}\t{1}", generos.Nome, generos.GeneroId);
            }

            System.Console.WriteLine();

            var queryJoin = from g in context.Generos
                            join f in context.Faixas
                            on g.GeneroId equals f.GeneroId
                            select new
            {
                f,
                g
            };

            //MÉTODO PARA RETORNAR OS TOP 10
            queryJoin = queryJoin.Take(10);

            foreach (var disco in queryJoin)
            {
                // System.Console.WriteLine("{0}\t{1}\t{2}", disco.f.Nome, disco.g.Nome, disco.f.PrecoUnitario);
            }

            //CONSULTA COM NOME DE BANDAS

            System.Console.WriteLine("DIGITE UM TEXTO PARA REALIZAR A BUSCA");
            var textoBusca = Console.ReadLine();

            var queryBandas = from f in context.Artista
                              join alb in context.Albums
                              on f.ArtistaId equals alb.ArtistaId
                              where f.Nome.Contains(textoBusca)
                              select new
            {
                NomeArtista = f.Nome,
                NomeAlbum   = alb.Titulo
            };

            foreach (var artista in queryBandas)
            {
                // System.Console.WriteLine("{0}\t{1}", artista.NomeArtista, artista.NomeAlbum);
            }

            System.Console.WriteLine();
            var query2 = from alb in context.Albums
                         where alb.Artista.Nome.Contains(textoBusca)
                         select new { NomeArtista = alb.Artista.Nome, NomeAlbum = alb.Titulo };

            foreach (var album in query2)
            {
                // System.Console.WriteLine("{0}\t{1}",album.NomeAlbum,album.NomeArtista);
            }
        }
Пример #3
0
 static void Main(string[] args)
 {
     using (var context = new AluraTunesContext())
     {
         //GetFaixas(context, "Led", "");
         // ContarFaixas(context, "Led", "");
         // FuncaoSum(context, "Led", "");
     }
 }
Пример #4
0
        public static void FuncaoSum(AluraTunesContext context, string buscaArsitas, string buscaAlbum)
        {
            var consulta = from inf in context.ItemNotaFiscals
                           where inf.Faixa.Album.Artista.Nome.Contains(buscaArsitas)
                           select new { totalDoItem = inf.Quantidade * inf.PrecoUnitario };

            var totalArtista = consulta.Sum(x => x.totalDoItem);

            System.Console.WriteLine("Total do artista é: R$ {0}", totalArtista);
        }
Пример #5
0
        public static void MinMaxAvg(AluraTunesContext context)
        {
            var vendas = (from nf in context.NotaFiscals
                          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);
        }
Пример #6
0
        public static void FuncaoGroupBy(AluraTunesContext context, string buscaArsitas)
        {
            var query = from inf in context.ItemNotaFiscals
                        where inf.Faixa.Album.Artista.Nome.Contains(buscaArsitas)
                        group inf by inf.Faixa.Album into agrupado
                        let vendasPorAlbum = agrupado.Sum(a => a.Quantidade * a.PrecoUnitario)
                                             orderby vendasPorAlbum
                                             descending
                                             select new
            {
                Titulo        = agrupado.Key.Titulo,
                TotalPorAlbum = vendasPorAlbum
            };

            foreach (var item in query)
            {
                System.Console.WriteLine("{0} \t {1}", item.Titulo, item.TotalPorAlbum);
            }
        }
Пример #7
0
        public static void GetFaixas(AluraTunesContext context, string buscaArsitas, string buscaAlbum)
        {
            var queryTeste = from f in context.Faixas
                             where f.Album.Artista.Nome.Contains(buscaArsitas)
                             select new { Album = f.Album.Titulo, faixaNome = f.Nome };

            //ADICIONA O PARAMETRO DE NOME DE ALBUM NA CONSULTA CASO A VARIAVEL NÃO VENHA VAZIA
            if (!string.IsNullOrEmpty(buscaAlbum))
            {
                queryTeste = queryTeste.Where(x => x.Album.Contains(buscaAlbum));
            }

            //ThenBy REALIZA UMA ORDENAÇÃO SECUNDÁRIA, ELE SÓ PODE SER USADO APÓS UMA CLAUSUALA DE ORDERBY
            queryTeste = queryTeste.OrderBy(x => x.Album).ThenBy(x => x.faixaNome);

            foreach (var faixa in queryTeste)
            {
                Console.WriteLine("{0}\t{1}", faixa.Album.PadRight(20), faixa.faixaNome);
            }
        }