Beispiel #1
0
        private static void ListarDadosRelacionalComFiltro()
        {
            using (var context = new AluraFilmesContext())
            {
                // Listando Relacionamento Filme/Idiomas
                var idiomas = context.Idiomas
                              .Include(c => c.FilmesFalados);

                foreach (var idioma in idiomas)
                {
                    Console.WriteLine(idioma);

                    Console.WriteLine("Filmes Falados");
                    foreach (var filmesFalados in idioma.FilmesFalados)
                    {
                        Console.WriteLine(filmesFalados);
                    }
                    Console.WriteLine("\n");
                }

                // Listando o Top 5 de atores com mais filmes feitos
                var atoresMaisAtuantes = context.Atores
                                         .Include(a => a.Filmes)
                                         .ThenInclude(a => a.Filme)
                                         .OrderByDescending(a => a.Filmes.Count())
                                         .Take(5);

                foreach (Ator ator in atoresMaisAtuantes)
                {
                    Console.WriteLine($"O ator {ator.PrimeiroNome} {ator.UltimoNome} atuou em {ator.Filmes.Count()} filmes");
                }
            }
        }
Beispiel #2
0
        public static void UtilizandoShadowProperties()
        {
            using (var context = new AluraFilmesContext())
            {
                // Adicionando Ator
                var ator = new Ator();
                ator.PrimeiroNome = "Tom";
                ator.UltimoNome   = "Hanks";
                context.Entry(ator).Property("last_update").CurrentValue = DateTime.Now; // Adicionando valor a uma Shadow Property

                context.Atores.Add(ator);
                //context.SaveChanges();

                // Recuperando Ator
                var ator2 = context.Atores.FirstOrDefault();

                Console.WriteLine(ator2);
                Console.WriteLine(context.Entry(ator2).Property("last_update").CurrentValue); // Recuperando valor de uma Shadow Property

                // Listar os 10 atores modificados recentemente
                var atoresMaisRecentesalterados = context.Atores
                                                  .OrderByDescending(a => EF.Property <DateTime>(a, "last_update")) // Ordenando por uma Shadow Property
                                                  .Take(10);

                foreach (var item in atoresMaisRecentesalterados)
                {
                    Console.WriteLine(item + " - " + context.Entry(item).Property("last_update").CurrentValue);
                }
            }
        }
 public Filme BuscaPrimeiroFilmeRelacionado(int id)
 {
     using (var context = new AluraFilmesContext())
     {
         var filme = context.Filmes.Where(f => f.Id == id)
                     .Include(f => f.Atores)
                     .ThenInclude(fa => fa.Ator)
                     .First();
         return(filme);
     }
 }
 public IList <Filme> BuscaFilmesRelacionadosIdiomas()
 {
     using (var context = new AluraFilmesContext())
     {
         context.LogSQLToConsole();
         return(context.Filmes
                .Include(f => f.IdiomaFalado)
                .Include(f => f.IdiomaOriginal)
                .OrderBy(f => f.Id)
                .ToList());
     }
 }
Beispiel #5
0
        private static void InsertDeletePeloExecuteSqlCommand()
        {
            using (var context = new AluraFilmesContext())
            {
                var sql = "INSERT INTO language (name) VALUES ('Teste 1'), ('Teste 2'), ('Teste 3')";
                var registrosAfetados = context.Database.ExecuteSqlCommand(sql);
                Console.WriteLine($"O total de registros afetados é {registrosAfetados}");

                var deleteSql = "DELETE FROM language WHERE name LIKE 'Teste%'";
                var deleteRegistrosAfetados = context.Database.ExecuteSqlCommand(deleteSql);
                Console.WriteLine($"O total de registros afetados é {deleteRegistrosAfetados}");
            }
        }
Beispiel #6
0
        private static void UtilizandoHeranca()
        {
            using (var context = new AluraFilmesContext())
            {
                Console.WriteLine("Clientes");
                foreach (var cliente in context.Clientes)
                {
                    Console.WriteLine(cliente);
                }

                Console.WriteLine("Funcionarios");
                foreach (var funcionario in context.Funcionarios)
                {
                    Console.WriteLine(funcionario);
                }
            }
        }
Beispiel #7
0
        public static void ListarDadosBanco()
        {
            using (var context = new AluraFilmesContext())
            {
                context.LogSQLToConsole();

                // Listando Atores
                var atores = context.Atores.ToList();
                foreach (var item in atores)
                {
                    Console.WriteLine(item);
                }

                // Listando Filmes
                var filmes = context.Filmes.ToList();
                foreach (var item in filmes)
                {
                    Console.WriteLine(item);
                }

                // Listando Relacionamento Filmes/Ator
                var filme = context.Filmes
                            .Include(f => f.Atores)
                            .ThenInclude(fa => fa.Ator)
                            .First();

                Console.WriteLine(filme);
                foreach (var item in filme.Atores)
                {
                    Console.WriteLine(item.Ator);
                }

                // Listando Relacionamento Filme/Categoria
                var categoria = context.Categorias
                                .Include(c => c.Filmes)
                                .ThenInclude(fc => fc.Filme)
                                .First();

                Console.WriteLine(categoria);
                foreach (var item in categoria.Filmes)
                {
                    Console.WriteLine(item.Filme);
                }
            }
        }
Beispiel #8
0
        private static void UtilizandoEnumEConstraint()
        {
            using (var context = new AluraFilmesContext())
            {
                var filme = new Filme()
                {
                    Titulo        = "Senho dos Anéis",
                    Duracao       = 120,
                    AnoLancamento = "2000",
                    Classificacao = EnumClassificacaoIndicativa.MaioresQue18,
                    IdiomaFalado  = context.Idiomas.First()
                };

                context.Filmes.Add(filme);
                //context.SaveChanges();

                var filmeInserido = context.Filmes.First(f => f.Titulo == "Senho dos Anéis");
                Console.WriteLine(filmeInserido + " - " + filmeInserido.TextoClassificacao);
            }
        }
Beispiel #9
0
        private static void UtilizandoProcedures()
        {
            using (var context = new AluraFilmesContext())
            {
                var categoria = "Action";

                var paramCateg = new SqlParameter("category_name", categoria);

                var paramTotal = new SqlParameter
                {
                    ParameterName = "@total_actors",
                    Size          = 4,
                    Direction     = System.Data.ParameterDirection.Output
                };

                context.Database
                .ExecuteSqlCommand("total_actors_from_given_category @category_name, @total_actors OUT", paramCateg, paramTotal);

                Console.WriteLine($"O total de atores na categoria {categoria} é de {paramTotal.Value}");
            }
        }
Beispiel #10
0
        static void Main(string[] args)
        {
            using (var context = new AluraFilmesContext())
            {
                context.LogSQLToConsole();
                var categoria      = "Action";
                var paramCategoria = new SqlParameter("@categoria", categoria);

                var paramTotal = new SqlParameter()
                {
                    ParameterName = "@total",
                    Direction     = System.Data.ParameterDirection.Output,
                    Size          = 4
                };
                context.Database
                .ExecuteSqlCommand("total_actors_from_given_category @categoria, @total OUT", paramCategoria, paramTotal);

                Console.WriteLine($"O total da categoria '{categoria}' é {paramTotal.Value}");
            }
            Console.ReadKey();
        }
Beispiel #11
0
        private static void ExecutandoCodigoSQL()
        {
            using (var context = new AluraFilmesContext())
            {
                // Nessa versão do entity essa forma contem algumas limitações, o select só pode retornar dados de uma tabela em questão
                var sql = @"SELECT a.*
                            FROM actor a
                            INNER JOIN top5_most_starred_actors filmes ON filmes.actor_id = a.actor_id";

                // "top5_most_starred_actors" é uma view do banco (queries salvas no banco na pasta Views)

                var atoresMaisAtuantes = context.Atores
                                         .FromSql(sql)
                                         .Include(a => a.Filmes)
                                         .ThenInclude(a => a.Filme);

                foreach (Ator ator in atoresMaisAtuantes)
                {
                    Console.WriteLine($"O ator {ator.PrimeiroNome} {ator.UltimoNome} atuou em {ator.Filmes.Count()} filmes");
                }
            }
        }
Beispiel #12
0
        static void Main(string[] args)
        {
            //var test = ClassificacaoIndicativa.MaioresQue10;

            //foreach(ClassificacaoIndicativa item in Enum.GetValues(typeof(ClassificacaoIndicativa)))
            //{
            //    Console.WriteLine(item.ParaString());
            //}

            using (var contexto = new AluraFilmesContext())
            {
                contexto.LogSQLToConsole();

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

                var deleteSql = "DELETE FROM language WHERE name LIKE 'Teste%'";
                registros = contexto.Database.ExecuteSqlCommand(deleteSql);
                Console.WriteLine($"O total de registros afetados é {registros}.");
            }
        }