Beispiel #1
0
        private static void FilmeClassificacao()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                //var livre = ClassificacaoIndicativa.Livre;
                //Console.WriteLine(livre.ParaString());

                //var maior = ClassificacaoIndicativa.MaiorQue18;
                //Console.WriteLine(maior.ParaString());

                //Console.WriteLine("G".ParaValor());

                var filme = new Filme();
                filme.Titulo        = "Senhor dos Anéis";
                filme.Duracao       = 120;
                filme.AnoLancamento = "2000";
                filme.Classificacao = ClassificacaoIndicativa.MaiorQue14;
                filme.IdiomaFalado  = contexto.Idiomas.First();

                contexto.Filmes.Add(filme);
                contexto.SaveChanges();

                var filmeInserido = contexto.Filmes.First(f => f.Titulo == "Senhor dos Anéis");
                Console.WriteLine(filmeInserido.Classificacao);
            }
        }
Beispiel #2
0
        private static void ConfigurandoRestricoesUnique()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var ator1 = new Ator
                {
                    PrimeiroNome = "Emma",
                    UltimoNome   = "Watson"
                };

                var ator2 = new Ator
                {
                    PrimeiroNome = "Emma",
                    UltimoNome   = "Watson"
                };

                contexto.Atores.AddRange(ator1, ator2);
                contexto.SaveChanges();

                var emmaWatson = contexto.Atores
                                 .Where(a => a.PrimeiroNome == "Emma" && a.UltimoNome == "Watson");

                Console.WriteLine($"Total de atores encontrados: {emmaWatson.Count()}");
            }

            Console.ReadLine();
        }
Beispiel #3
0
        private static void FromSqlESuasLimitacoes()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var sql = @"select a.*
                            from actor a
                                inner join
                            (select top 5 a.actor_id, count(*) as total
                            from actor a
                                inner join film_actor fa on fa.actor_id = a.actor_id
                            group by a.actor_id
                            order by total desc) filmes on filmes.actor_id = a.actor_id";

                var atoresMaisAtuantes = contexto.Atores
                                         .FromSql(sql)
                                         .Include(a => a.Filmografia);

                foreach (var ator in atoresMaisAtuantes)
                {
                    Console.WriteLine($"O ator {ator.PrimeiroNome} {ator.UltimoNome} atuou em {ator.Filmografia.Count} filmes.");
                }
            }

            Console.ReadLine();
        }
Beispiel #4
0
        private static void UsandoStoredProcedures()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var categoria = "Action"; // 36

                var paramCategoria = new SqlParameter("category_name", categoria);
                var paramTotal     = new SqlParameter
                {
                    ParameterName = "@total_actors",
                    Size          = 4,
                    Direction     = ParameterDirection.Output
                };

                contexto.Database
                .ExecuteSqlCommand(
                    "execute total_actors_from_given_category @category_name, @total_actors OUT",
                    paramCategoria,
                    paramTotal
                    );

                Console.WriteLine($"O total de atores na categoria {categoria} é de {paramTotal.Value}.");
            }

            Console.ReadLine();
        }
Beispiel #5
0
        private static void ModeloDeDadosDoEntity()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var filme = new Filme
                {
                    Titulo        = "Casino Royale",
                    Duracao       = 120,
                    AnoLancamento = "2000",
                    Classificacao = ClassificacaoIndicativa.MaioresQue14,
                    IdiomaFalado  = contexto.Idiomas.First()
                };

                contexto.Entry(filme).Property("last_update").CurrentValue = DateTime.Now;

                contexto.Filmes.Add(filme);

                contexto.SaveChanges();

                var filmeInserido = contexto.Filmes.First(f => f.Titulo == "Casino Royale");

                Console.WriteLine(filmeInserido.Classificacao);
            }

            Console.ReadLine();
        }
Beispiel #6
0
        private static void ListaUltimo10AtoresCadastrados()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                //Modificando a shadowProperty
                //var ator = new Ator();
                //ator.PrimeiroNome = "Tom";
                //ator.UltimoNome = "Hanks";
                //contexto.Entry(ator).Property("last_update").CurrentValue = DateTime.Now;
                //contexto.Add(ator);

                ///Utilizando a shadow property em query
                ///O EF está dentro do using Microsoft.EntityFrameworkCore;
                var atores = contexto.Atores
                             .OrderByDescending(x => EF.Property <DateTime>(x, "last_update"))
                             .Take(10);

                foreach (var item in atores)
                {
                    Console.WriteLine(item + " - " + contexto.Entry(item).Property("last_update").CurrentValue);
                }

                //contexto.SaveChanges();
            }
        }
Beispiel #7
0
        private static void AssumindoAsRedeasDoSQLGerado()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                //var atoresMaisAtuantes = contexto.Atores
                //    .Include(a => a.Filmografia)
                //    .OrderByDescending(a => a.Filmografia.Count)
                //    .Take(5);

                var sql = @"select top 5 a.first_name, a.last_name, count(*) as total
                            from actor a
                                inner join film_actor fa on fa.actor_id = a.actor_id
                            group by a.first_name, a.last_name
                            order by total desc";

                var atoresMaisAtuantes = contexto.Atores.FromSql(sql);

                foreach (var ator in atoresMaisAtuantes)
                {
                    Console.WriteLine($"O ator {ator.PrimeiroNome} {ator.UltimoNome} atuou em {ator.Filmografia.Count} filmes.");
                }
            }

            Console.ReadLine();
        }
Beispiel #8
0
        private static void ConsultasUsandoComandoSQL()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                /* USANDO CONSULTA LINQ POR MÉTODO */
                //var atores = contexto.Atores
                //            .Include(a => a.Filmografia)
                //            .OrderByDescending(a => a.Filmografia.Count)
                //            .Take(5);

                /* USANDO FROMSQL */
                //var sql = @"SELECT a.*
                //            FROM dbo.actor a
                //            INNER JOIN ( SELECT TOP 5 a.actor_id, COUNT(*) AS total
                //                FROM dbo.actor a
                //                INNER JOIN dbo.film_actor fa ON fa.actor_id = a.actor_id
                //                GROUP BY a.actor_id
                //                ORDER BY total DESC ) filmes ON filmes.actor_id = a.actor_id";
                //var atores = contexto.Atores
                //                .FromSql(sql)
                //                .Include(a => a.Filmografia);

                /* USANDO FROMSQL */
                var sql    = @"SELECT a.* FROM dbo.actor a
                            INNER JOIN top5_most_starred_actors filmes ON filmes.actor_id = a.actor_id";
                var atores = contexto.Atores
                             .FromSql(sql)
                             .Include(a => a.Filmografia);


                foreach (var ator in atores)
                {
                    Console.WriteLine($"O {ator.PrimeiroNome} {ator.UltimoNome} atuou em {ator.Filmografia.Count} filmes");
                }

                /* EXEMPLO COM CONSULTA LINQ */
                //var atores = from f in contexto.Atores
                //             let Total = f.Filmografia.Count
                //             orderby Total descending
                //             select new
                //             {
                //                 Nome = f.PrimeiroNome + " " + f.UltimoNome,
                //                 Total
                //             };

                //atores = atores.Take(5);

                //foreach (var ator in atores)
                //{
                //    Console.WriteLine("{0}, {1}", ator.Nome, ator.Total);
                //}
            }
        }
Beispiel #9
0
        private static void RecuperandoValoresDaPropriedadeShadowProperty()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var ator = contexto.Atores.First();

                Console.WriteLine(ator + " " + contexto.Entry(ator).Property("last_update").CurrentValue);
            }
        }
Beispiel #10
0
        private static void ExibeAsCategorias()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                foreach (var item in contexto.Categorias)
                {
                    Console.WriteLine(item);
                }
            }
        }
Beispiel #11
0
        private static void ListarFilmes()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                foreach (var filme in contexto.Filmes)
                {
                    Console.WriteLine(filme);
                }
            }
        }
Beispiel #12
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                foreach (var idioma in contexto.Idiomas)
                {
                    Console.WriteLine(idioma);
                }
            }
        }
Beispiel #13
0
        private static void ConvertendoEnumParaValor()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var livre = ClassificacaoIndicativa.MaioresQue13;

                Console.WriteLine(livre.ParaString());
                Console.WriteLine(livre.ParaString().ParaValor());
            }
        }
Beispiel #14
0
        private static void UtilizandoSQLManualParaSubustituirOEntity()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                //Usando SQL injetado na mão
                //Ele tem uma limitação, que dessa forma só pode voltar dados de uma coluna e deve conter todas as colunas
                //da entidade
                //var sql = @"
                //            select a.*
                //            from actor a
                //            join (

                //             select top 5 a.actor_id, count(a.actor_id) total
                //             from actor a
                //             join film_actor fa on a.actor_id = fa.actor_id
                //             group by a.actor_id, a.first_name, a.last_name
                //             order by total desc
                //             ) filmes on filmes.actor_id = a.actor_id";

                //var atoresMaisAtuantes = contexto
                //    .Atores
                //    .FromSql(sql)
                //    .Include(x=> x.Filmografia)
                //    .OrderByDescending(x=> x.Filmografia.Count);

                //Utilizando a view top5_most_starred_actors
                var sql = @"    
                            select a.*
                            from actor a
                            join top5_most_starred_actors filmes on filmes.actor_id = a.actor_id";

                var atoresMaisAtuantes = contexto
                                         .Atores
                                         .FromSql(sql)
                                         .Include(x => x.Filmografia)
                                         .OrderByDescending(x => x.Filmografia.Count);

                //Usando EF para fazer a query
                //var atoresMaisAtuantes = contexto
                //    .Atores
                //    .Include(x=> x.Filmografia)
                //    .OrderByDescending(x=> x.Filmografia.Count)
                //    .Take(5);

                foreach (var ator in atoresMaisAtuantes)
                {
                    Console.WriteLine($"O ator {ator.PrimeiroNome} {ator.UltimoNome} atuou em {ator.Filmografia.Count} filmes");
                }
            }
        }
        public static void ImprimeFilmes()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var atores = contexto.Filmes;

                foreach (var filme in atores)
                {
                    Console.WriteLine(filme);
                }
            }
        }
Beispiel #16
0
        private static void MultiplosRelacionamentosMesmasTabelas()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                foreach (var idioma in contexto.Idiomas)
                {
                    Console.WriteLine(idioma);
                }
            }

            Console.ReadLine();
        }
Beispiel #17
0
        private static void ExecutarInsertDelete()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var sql = "INSERT INTO dbo.language (name) VALUES ('Teste 1'), ('Teste 2'), ('Teste 3')";
                var registrosAfetados = contexto.Database.ExecuteSqlCommand(sql);
                Console.WriteLine($"Total de registros afetados: {registrosAfetados}");

                sql = "DELETE FROM dbo.language WHERE name LIKE ('Teste%')";
                registrosAfetados = contexto.Database.ExecuteSqlCommand(sql);
                Console.WriteLine($"Total de registros afetados: {registrosAfetados}");
            }
        }
Beispiel #18
0
        private static void Lista10AtoresModificadosRecentemente()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var atores = contexto.Atores
                             .OrderByDescending(a => EF.Property <DateTime>(a, "last_update"))
                             .Take(10);

                foreach (var ator in atores)
                {
                    Console.WriteLine("{0} - {1}", ator, contexto.Entry(ator).Property("last_update").CurrentValue);
                }
            }
        }
        public static void ImprimeAtores()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var atores = contexto.Atores
                             .OrderBy(a => EF.Property <DateTime>(a, "last_update"))
                             .Take(10);

                foreach (var ator in atores)
                {
                    Console.WriteLine(ator + " - " + contexto.Entry(ator).Property("last_update").CurrentValue);
                }
            }
        }
Beispiel #20
0
        private static void CadastroDeAtor()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                Ator ator = new Ator()
                {
                    PrimeiroNome = "Will",
                    UltimoNome   = "Smith"
                };
                contexto.Entry(ator).Property("last_update").CurrentValue = DateTime.Now;

                contexto.Atores.Add(ator);
                contexto.SaveChanges();
            }
        }
        static void Main()
        {
            using (var context = new AluraFilmesContexto())
            {
                context.LogSQLToConsole();

                var sql = "INSERT INTO language (name) VALUES ('Teste1'),('Teste2'),('Teste3')";

                var registros = context.Database.ExecuteSqlCommand(sql);
                Console.WriteLine($"Total de ({registros}) registros inseridos");

                sql = "DELETE FROM language WHERE name like 'Teste%'";

                registros = context.Database.ExecuteSqlCommand(sql);
                Console.WriteLine($"Total de ({registros}) registros excluidos");
            }
        }
Beispiel #22
0
        private static void ExibeFilmeAtor()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                foreach (var item in contexto.Elenco)
                {
                    var entidade   = contexto.Entry(item);
                    var filmId     = entidade.Property("film_id").CurrentValue;
                    var actorId    = entidade.Property("actor_id").CurrentValue;
                    var lastUpdate = entidade.Property("last_update").CurrentValue;

                    Console.WriteLine($"Filme {filmId}, Ator {actorId}, Last Updatde {lastUpdate}");
                }
            }
        }
Beispiel #23
0
        private static void VisualizarFilmeEElenco()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var filme = contexto.Filmes.Include(f => f.Atores).ThenInclude(fa => fa.Ator).First();
                Console.WriteLine(filme);

                Console.WriteLine("\nElenco:");

                foreach (var item in filme.Atores)
                {
                    Console.WriteLine(item.Ator);
                }
            }
        }
        static void Main(string[] args)
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();
                StoredProcedure(contexto);

                var sql       = "INSERT INTO language (name) VALUES ('Teste 1'), ('Teste 2'), ('Teste 3')";
                var registros = contexto.Database.ExecuteSqlCommand(sql);
                Console.WriteLine("Total de Registros Afetdados: " + registros);

                var deleteSql    = "DELETE FROM language WHERE name LIKE 'Teste%'";
                var registrosDel = contexto.Database.ExecuteSqlCommand(deleteSql);
                Console.WriteLine("Total de Registros Afetdados: " + registrosDel);
            }
            Console.ReadKey();
        }
Beispiel #25
0
        private static void BuscaElencoDosFIlmes()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var filme = contexto
                            .Filmes
                            .Include(f => f.Atores)
                            .ThenInclude(x => x.Ator)
                            .FirstOrDefault(x => x.Id == 2);

                Console.WriteLine(filme);
                Console.WriteLine("Elenco:");

                //foreach (var item in contexto.Elenco)
                //{
                //    //Pega a entidade
                //    var entidade = contexto.Entry(item);
                //    //Pega a shadow property
                //    var filmId = entidade.Property("film_id").CurrentValue;
                //    //Pega a shadow property
                //    var actorId = entidade.Property("actor_id").CurrentValue;

                //    Console.WriteLine($"FilmId: {filmId} - ActorId: {actorId}");
                //}

                foreach (var ator in filme.Atores)
                {
                    Console.WriteLine($"Ator: {ator.Ator.PrimeiroNome} {ator.Ator.UltimoNome}");
                }

                var categoria = contexto
                                .Filmes
                                .Include(x => x.Categorias)
                                .ThenInclude(y => y.Categoria)
                                .FirstOrDefault(x => x.Id == filme.Id);

                Console.WriteLine("Categoria");
                foreach (var c in categoria.Categorias)
                {
                    Console.WriteLine($"Categoria: {c.Categoria.Id} - {c.Categoria.Nome}");
                }
            }
        }
Beispiel #26
0
        private static void IdiomaFaladoEOriginal()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var filme = contexto.Filmes
                            .Include(f => f.IdiomaFalado)
                            .Include(f => f.IdiomaOriginal)
                            .First();

                Console.WriteLine(filme);
                Console.WriteLine($"Idioma falado: {filme.IdiomaFalado.Nome}");
                Console.WriteLine($"Idioma original: {filme.IdiomaOriginal.Nome}");
            }

            Console.ReadLine();
        }
Beispiel #27
0
        private static void ExibeClientesFuncionarios()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                Console.WriteLine("Cliente:");
                foreach (var cliente in contexto.Clientes)
                {
                    Console.WriteLine(cliente);
                }

                Console.WriteLine("\nFuncionários");
                foreach (var funcionario in contexto.Funcionarios)
                {
                    Console.WriteLine(funcionario);
                }
            }
        }
Beispiel #28
0
        private static void MapeandoHeranca()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                foreach (var cliente in contexto.Clientes)
                {
                    Console.WriteLine(cliente);
                }

                foreach (var funcionario in contexto.Funcionarios)
                {
                    Console.WriteLine(funcionario);
                }

                Console.ReadLine();
            }
        }
Beispiel #29
0
        static void Main3(string[] args)
        {
            using (var context = new AluraFilmesContexto())
            {
                context.LogSQLToConsole();

                //foreach(var filme in context.Filmes)
                //{
                //    Console.WriteLine(filme);
                //}


                //foreach (var elenco in context.Elenco)
                //{
                //    var entidade = context.Entry(elenco);
                //    var filmid = entidade.Property("film_id").CurrentValue;
                //    var actorid = entidade.Property("actor_id").CurrentValue;
                //    var lastUp = entidade.Property("last_update").CurrentValue;


                //    Console.WriteLine(elenco);
                //    Console.WriteLine($"Filme {filmid}, Ator {actorid}, lastup {lastUp}");
                //}

                var filme = context.Filmes
                            .Include(f => f.Atores)//join com tabela atores
                            .ThenInclude(fa => fa.Ator)
                            .First();
                //aqui foi apenas criado lista de atores em filme, nao foi criado lista de filme em atores
                //assim o ef core implicita que é relacionamento de muitos para 1
                //ao inves de n pra n
                //cria shadow property para 1 filme
                //necessario criarlista de filmeAtor


                Console.WriteLine("Elenco: ");
                foreach (var ator in filme.Atores)
                {
                    Console.WriteLine(ator.Ator);
                }
            }
        }
Beispiel #30
0
        private static void ExibeFilmesDeUmaCategoria()
        {
            using (var contexto = new AluraFilmesContexto())
            {
                contexto.LogSQLToConsole();

                var categoria = contexto.Categorias
                                .Include(c => c.Filmes)
                                .ThenInclude(cc => cc.Filme)
                                .First();

                Console.WriteLine(categoria);
                Console.WriteLine();

                foreach (var filme in categoria.Filmes)
                {
                    Console.WriteLine(filme.Filme);
                }
            }
        }