Beispiel #1
0
        static void Main(string[] args)
        {
            using (var db = new MovieContext())
            {
                #region seeding
                if (db.Genres.Count() == 0)
                {
                    Seed(db);
                }
                #endregion

                #region Novas consultas criadas
                MovieContext context = new MovieContext();
                //Consulta 1
                var ForrestGumpCast = from c in context.Characters
                                      where c.Movie.Title == "Forrest Gump"
                                      select c.Actor.Name;

                Console.WriteLine(" ");
                Console.WriteLine("Elenco de Forrest Gump: ");
                foreach (String actorName in ForrestGumpCast)
                {
                    Console.WriteLine(actorName);
                }

                //Consulta 2
                var ForrestGumpActors = (from c in context.Characters
                                         where c.Character == "Forrest Gump"
                                         select c.Actor.Name).Distinct();

                Console.WriteLine(" ");
                Console.WriteLine("Atores que viveram Forrest Gump: ");
                foreach (String actorName in ForrestGumpActors)
                {
                    Console.WriteLine(actorName);
                }

                //Consulta 3
                var JamesBond = (from c in context.Characters
                                 where c.Character == "James Bond"
                                 group c by c.Actor.Name into ActorAsCharacter
                                 orderby ActorAsCharacter.Count() descending
                                 select ActorAsCharacter.Key).First();

                Console.WriteLine(" ");
                Console.WriteLine("O ator que mais atuou como James Bond foi: ");
                Console.WriteLine(JamesBond);

                //Consultas opcionais:

                //Consulta 4 - Filmes tem o Gross entre 10 milhões e 50 milhões.
                Console.WriteLine("\nFilmes tem o Gross entre 10 milhões e 50 milhões");
                var filmesGross = from f in context.Movies
                                  where (f.Gross >= 10000000 && f.Gross <= 50000000
                                         )
                                  select new { f.Title, f.Gross };

                foreach (var filme in filmesGross)
                {
                    Console.WriteLine(filme);
                }
                #endregion
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            using (var db = new MovieContext())
            {
                #region seeding
                if (db.Genres.Count() == 0)
                {
                    Seed(db);
                }
                #endregion

                #region consultas

                MovieContext context = new MovieContext();

                //Consulta 1 - Listar elenco de um filme.
                var StarWarsCast = from c in context.Characters
                                   where c.Movie.Title == "Star Wars"
                                   select c.Actor.Name;

                Console.WriteLine(" ");
                Console.WriteLine("Elenco de Star Wars: ");
                foreach (String actorName in StarWarsCast)
                {
                    Console.WriteLine(actorName);
                }

                //Consulta 2 - Listar todos os atores que já desempenharam um determinado personagem.
                var jamesBondActors = (from c in context.Characters
                                       where c.Character == "James Bond"
                                       select c.Actor.Name).Distinct();

                Console.WriteLine(" ");
                Console.WriteLine("Atores que viveram James Bond: ");
                foreach (String actorName in jamesBondActors)
                {
                    Console.WriteLine(actorName);
                }

                //Consulta 3 - Informar qual o ator desempenhou mais vezes um determinado personagem.
                var mostActedAsJamesBond = (from c in context.Characters
                                            where c.Character == "James Bond"
                                            group c by c.Actor.Name into ActorAsCharacter
                                            orderby ActorAsCharacter.Count() descending
                                            select ActorAsCharacter.Key).First();

                Console.WriteLine(" ");
                Console.WriteLine("O ator que mais atuou como James Bond foi: ");
                Console.WriteLine(mostActedAsJamesBond);

                //Consultas opcionais:

                //Consulta 4 - Filmes tem o rating maior que 8.4.
                Console.WriteLine("\nFilmes tem o rating maior que 8.4");
                var filmesRating = from f in context.Movies
                                   where f.Rating > 8.40
                                   select new { f.Title, f.Rating };

                foreach (var filme in filmesRating)
                {
                    Console.WriteLine(filme);
                }

                //Consulta 5 - Todos os diretores que estiveram em mais de um filme de ação.
                var actionDirector = from m in context.Movies
                                     where m.Genre.Name == "Action"
                                     select m.Director;

                Console.WriteLine(" ");
                Console.WriteLine("Todos os diretores que fizeram filmes de ação: ");
                foreach (var directorName in actionDirector)
                {
                    Console.WriteLine(directorName);
                }

                Console.ReadKey();
                #endregion

                #region consultasPadrao
                //Consultas padrões

                // filmes do diretor “Quentin Tarantino”
                //var query1 = from f in context.Movies
                //             where f.Director == "Quentin Tarantino"
                //             select f;

                //var query2 = from f in context.Movies
                //             where f.Director == "Quentin Tarantino"
                //             select f.Title;

                //var query3 = context.Movies
                //                      .Where(f => f.Director == "Quentin Tarantino")
                //                      .Select(f => f.Title);

                //Console.WriteLine("\nQuery 1");
                //Console.WriteLine("Filmes do diretor Quentin Tarantino");
                //foreach (String titulo in query2)
                //{
                //    Console.WriteLine(titulo);
                //}

                //Console.WriteLine("Query 2");
                ////todos os filmes do genero "Action"
                //Console.WriteLine("\nFilmes de ação");
                //var query4 = (from genero in context.Genres
                //                                   .Include("Movies")
                //              where genero.Name == "Action"
                //              select genero).First();

                //foreach (var filme in query4.Movies)
                //{
                //    Console.WriteLine("\t" + filme.Title);
                //}

                //mesma consulta, mas de maneira diferente. Estamos consultando a tabela filme por meio do context.Movies em que o nome do genero do filme é action e estamos mostrando o titulo do filme
                //var query4b = (from filme in context.Movies
                //               where filme.Genre.Name == "Action"
                //               select filme);

                //foreach (var filme in query4b)
                //{
                //    Console.WriteLine("\t" + filme.Title);
                //}



                //Console.WriteLine("Query 3");
                //projeção sobre o título e dada de lançamento dos
                //filmes do diretor “Quentin Tarantino”
                //var query5 = from f in context.Movies
                //             where f.Director == "Quentin Tarantino"
                //             select new { Titulo = f.Title, f.ReleaseDate };

                //foreach (var filme in query5)
                //{
                //    Console.WriteLine("{0}\t {1}",
                //        filme.ReleaseDate.ToShortDateString(),
                //        filme.Titulo);
                //}

                //Console.WriteLine("Query 4");
                // Gêneros ordenados pelo nome
                //var query6 = from g in context.Genres
                //             orderby g.Name descending
                //             select g;

                //foreach (var genero in query6)
                //{
                //    Console.WriteLine("{0}\t {1}", genero.Name, genero.Description);
                //}

                //Console.WriteLine("Query 5");
                //Filmes agrupados pelo ano de lançamento
                //var query7a = context.Movies.ToList();
                //var query7 = from f in query7a
                //             group f by f.ReleaseDate.Year;

                //foreach (var ano in query7)
                //{
                //    Console.WriteLine("Ano: {0}", ano.Key);
                //    foreach (var filme in ano)
                //    {
                //        Console.WriteLine("\t{0:dd/MM}\t {1}",
                //                                 filme.ReleaseDate,
                //                                filme.Title);
                //    }
                //}

                //Console.WriteLine("Query 6");
                //Projeção do faturamento total, quantidade de filmes
                //e avaliação média agrupadas por gênero
                //var query8a = context.Movies.ToList();
                //var query8 = from f in query8a
                //             group f by f.Genre.Name into grpGen
                //             select new
                //             {
                //                 Categoria = grpGen.Key,
                //                 Filmes = grpGen,
                //                 Faturamento = grpGen.Sum(e => e.Gross),
                //                 Avaliacao = grpGen.Average(e => e.Rating),
                //                 Quantidade = grpGen.Count()
                //             };


                //foreach (var genero in query8)
                //{
                //    Console.WriteLine("\nGenero: {0}", genero.Categoria);
                //    Console.WriteLine("\tFaturamento total: {0}\n\t Avaliação média: {1}\n\tNumero de filmes: {2}",
                //                        genero.Faturamento, genero.Avaliacao, genero.Quantidade);
                //    Console.WriteLine("Filmes: ");
                //    foreach (var m in genero.Filmes)
                //    {
                //        Console.WriteLine("\t{0}", m.Title);
                //    }
                //}
                //Console.ReadKey();
                #endregion
            }
        }