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(); } }
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(); }
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); } }
static void Main2(string[] args) { using (var context = new AluraFilmesContexto()) { context.LogSQLToConsole(); //chama o metodo de logar o sql do entity //foreach (var ator in context.Atores) //{ // System.Console.WriteLine($"ator: {ator}"); //} var ator = new Ator(); ator.PrimeiroNome = "Tom"; ator.UltimoNome = "Hanks"; //como setar valor de uma shaddow property se nao é definido no builder //context.Entry(actor).Property("last_update").CurrentValue = DateTime.Now; context.Atores.Add(ator); context.SaveChanges(); //recuperar valores de shadow properties Console.WriteLine(context.Entry(ator).Property("last_update")); //listar os dez primeiros atores ordenados por last update de forma decrescente var atores = context.Atores//query em cima do conjunto de atores .OrderByDescending(a => EF.Property <DateTime>(a, "last_update")) .Take(10); foreach (var ator1 in atores) { Console.WriteLine(ator1 + " " + context.Entry(ator1).Property("last_update").CurrentValue); } //para atribuir: //contexto.Entry(aluno) // .Property("nota_inicial") // .CurrentValue = 8; //para recuperar: //var nota = contexto.Entry(aluno) // .Property("nota_inicial") // .CurrentValue; } }
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); } } }
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(); } }
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}"); } } }
private static void ShadowPropertiesLINQOrderByDescending() { using (var contexto = new AluraFilmesContexto()) { contexto.LogSQLToConsole(); // Listar os 10 atores modificados recentemente var atores = contexto.Atores .OrderByDescending(a => EF.Property <DateTime>(a, "last_update")) .Take(10); foreach (var ator in atores) { Console.WriteLine(ator); Console.WriteLine(contexto.Entry(ator).Property("last_update").CurrentValue); } } Console.ReadLine(); }
private static void DefinindoShadowProperties() { using (var contexto = new AluraFilmesContexto()) { contexto.LogSQLToConsole(); var ator = new Ator { PrimeiroNome = "Tom", UltimoNome = "Hanks" }; contexto.Entry(ator).Property <DateTime>("last_update").CurrentValue = DateTime.Now; contexto.Atores.Add(ator); contexto.SaveChanges(); } Console.ReadLine(); }
private static void ExibeFilmeECategoia() { using (var contexto = new AluraFilmesContexto()) { contexto.LogSQLToConsole(); var filme = contexto.Filmes .Include(f => f.Categorias) .ThenInclude(c => c.Categoria) .First(); Console.WriteLine(filme); foreach (var item in filme.Categorias) { var categoriaId = item.Categoria.ID; var categoriaNome = item.Categoria.Nome; var lastUpdate = contexto.Entry(item.Categoria).Property("last_update").CurrentValue; Console.WriteLine($"Categoria: {categoriaNome} (ID: {categoriaId}) - UP: {lastUpdate}"); //Console.WriteLine(item.Categoria); } } }
private static void DesafioMapeamentoFilmesCategorias() { using (var contexto = new AluraFilmesContexto()) { contexto.LogSQLToConsole(); var categoria = contexto.Categorias .Include(c => c.Filmes) .ThenInclude(cf => cf.Filme) .First(); Console.WriteLine(categoria); Console.WriteLine(contexto.Entry(categoria).Property <DateTime>("last_update").CurrentValue); Console.WriteLine("Filmes:"); foreach (var item in categoria.Filmes) { Console.WriteLine(item.Filme); } } Console.ReadLine(); }
public static void Main(string[] args) { 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(); //objetivo é não ser possível adicionar dois atores com mesmo nome //utilizando alternate key no ator config var emmaWatson = contexto.Atores .Where(a => a.PrimeiroNome == "Emma" && a.UltimoNome == "Watson"); Console.WriteLine($"Total de atores encontrados: {emmaWatson.Count()}."); contexto.LogSQLToConsole(); var idioma = new Idioma { Nome = "English" }; var filme = new Filme(); filme.Titulo = "Cassino Royale"; filme.Duracao = 120; filme.AnoLancamento = "2000"; filme.Classificacao = ClassificacaoIndicativa.MaioresQue14; filme.IdiomaFalado = idioma; contexto.Entry(filme).Property("last update").CurrentValue = DateTime.Now; //objetivo é nao ser possível adicionar filme com classificao com string qualquer var filmess = contexto.Filmes.First(f => f.Titulo == "Cassino Royale"); Console.WriteLine(filmess.Classificacao.ParaString()); //teste de conversao de e para enumerados var m10 = ClassificacaoIndicativa.MaioresQue18; Console.WriteLine(m10.ParaString()); Console.WriteLine("G".ParaValor()); } using (var contexto = new AluraFilmesContexto()) { contexto.LogSQLToConsole(); Console.WriteLine("Clientes"); foreach (var cliente in contexto.Clientes) { Console.WriteLine(cliente); } Console.WriteLine("\nFuncionários"); foreach (var func in contexto.Funcionarios) { Console.WriteLine(func); } } 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"; atoresMaisAtuantes = contexto.Atores.FromSql(sql); foreach (var ator in atoresMaisAtuantes) { Console.WriteLine($"{ator.PrimeiroNome} {ator.Filmografia} filmes"); } } }