private static void Relacionamento1para1() { using var db = new Curso.Data.ApplicationContext(); db.Database.EnsureDeleted(); db.Database.EnsureCreated(); var cliente = new Cliente() { Nome = "Nome do cliente", //Telefone = "Telefone do cliente", Endereco = new Endereco { Logradouro = "Rua das flores, 124", Bairro = "Jardin", Cidade = "Floricultura", Estado = "Flora do Sul" }, Profissao = new Profissao { Nome = "Cortador de galhos" } }; db.Clientes.Add(cliente); db.SaveChanges(); var clientes = db.Clientes.AsNoTracking().ToList(); clientes.ForEach(c => { Console.WriteLine($"Nome: {c.Nome} | Profissão: {c.Profissao.Nome }"); }); }
private static void RelacionamentoNparaN() { using var db = new Curso.Data.ApplicationContext(); db.Database.EnsureDeleted(); db.Database.EnsureCreated(); var cliente1 = new Cliente() { Nome = "Nome do cliente 1", }; var cliente2 = new Cliente() { Nome = "Nome do cliente 2", }; var filme1 = new Filme() { Nome = "Esqueceram de mim", AnoLancamento = 1990 }; var filme2 = new Filme() { Nome = "Matrix", AnoLancamento = 1999 }; var filme3 = new Filme() { Nome = "Tomates verdes fritos", AnoLancamento = 1991 }; cliente1.Filmes.Add(filme1); filme2.Clientes.Add(cliente1); filme2.Clientes.Add(cliente2); filme3.Clientes.Add(cliente2); db.AddRange(cliente1, cliente2, filme1, filme2, filme3); db.SaveChanges(); var clientes = db.Clientes .Include(c => c.Filmes) .AsNoTracking() .ToList(); clientes.ForEach(c => { Console.WriteLine($"Nome: {c.Nome}"); c.Filmes.ToList().ForEach(f => { Console.WriteLine($"- Filme: ({f.Nome}) | {f.AnoLancamento}"); }); }); }
private static void AtualizarDados() { using var db = new Data.ApplicationContext(); //var cliente = db.Clientes.Find(1); var cliente = new Cliente { Id = 1 }; var clienteDesconectado = new { Nome = "Cliente desconectado passo 3", Telefone = "7851245632" }; //rastrear o objeto db.Attach(cliente); db.Entry(cliente).CurrentValues.SetValues(clienteDesconectado); //db.Clientes.Update(cliente); db.SaveChanges(); Console.ReadKey(); }
private static void OwnedType() { using var db = new Curso.Data.ApplicationContext(); db.Database.EnsureDeleted(); db.Database.EnsureCreated(); var cliente = new Cliente() { Nome = "Nome do cliente", //Telefone = "Telefone do cliente", Endereco = new Endereco { Logradouro = "Rua das flores, 124", Bairro = "Jardin", Cidade = "Floricultura", Estado = "Flora do Sul" } }; db.Clientes.Add(cliente); db.SaveChanges(); var clientes = db.Clientes.AsNoTracking().ToList(); var options = new JsonSerializerOptions { WriteIndented = true }; clientes.ForEach(c => { var json = JsonSerializer.Serialize(clientes, options); Console.WriteLine(json); }); }
private static void CadastrarPedido() { using var db = new Data.ApplicationContext(); var cliente = db.Clientes.FirstOrDefault(); var produto = db.Produtos.FirstOrDefault(); var pedido = new Pedido { ClienteId = cliente.Id, IniciadoEm = DateTime.Now, FinalizadoEm = DateTime.Now, Observacao = "Pedido teste", Status = StatusPedido.Anlise, TipoFrete = TipoFrete.SemFrete, Itens = new List <PedidoItem> { new PedidoItem { ProdutoId = produto.Id, Desconto = 0, Quantidade = 1, Valor = 10, } } }; db.Pedidos.Add(pedido); db.SaveChanges(); Console.ReadKey(); }
static void TestandoTimeout() { using var db = new Curso.Data.ApplicationContext(); db.Database.SetCommandTimeout(21); db.Database.ExecuteSqlRaw("WAITFOR DELAY '00:00:20';SELECT 1;"); }
private static void InserirDados() { var produto = new Produto { Descricao = "Produto Teste", CodigoBarras = "1234567897", Valor = 10m, TipoProduto = TipoProduto.MercadoriaParaRevenda, Ativo = true }; var listaClientes = new List <Cliente> { new Cliente { Nome = "Amanda Rodrigues2", CEP = "79290000", Cidade = "Bonito", Estado = "MS", Telefone = "991646461" }, new Cliente { Nome = "Amanda Rodrigues3", CEP = "79290000", Cidade = "Bonito", Estado = "MS", Telefone = "991646461" }, new Cliente { Nome = "Amanda Rodrigues4", CEP = "79290000", Cidade = "Bonito", Estado = "MS", Telefone = "991646461" } }; var cliente = new Cliente { Nome = "Amanda Rodrigues", CEP = "79290000", Cidade = "Bonito", Estado = "MS", Telefone = "991646461" }; using var db = new Data.ApplicationContext(); //db.Produtos.Add(produto); //db.Set<Produto>().Add(produto); //db.Add(cliente); db.AddRange(listaClientes); var registros = db.SaveChanges(); Console.WriteLine($"Total de registros: : {registros}"); }
private static void ConsultarPedidoCarregamentoAdiantado() { using var db = new Data.ApplicationContext(); var pedidos = db .Pedidos .Include(p => p.Itens) .ThenInclude(p => p.Produto) //o que está dentro de include (itens) .ToList(); Console.WriteLine(pedidos.Count); }
static void SetupDb(Curso.Data.ApplicationContext db) { if (db.Database.EnsureCreated()) { if (!db.Departamentos.Any()) { db.Departamentos.AddRange( new Curso.Domain.Departamento { Ativo = true, Descricao = "Departamento 01", Funcionarios = new System.Collections.Generic.List <Curso.Domain.Funcionario> { new Curso.Domain.Funcionario { Nome = "Rafael Almeida", CPF = "99999999911", Rg = "2100062" } }, Excluido = true }, new Curso.Domain.Departamento { Ativo = true, Descricao = "Departamento 02", Funcionarios = new System.Collections.Generic.List <Curso.Domain.Funcionario> { new Curso.Domain.Funcionario { Nome = "Bruno Brito", CPF = "88888888811", Rg = "3100062" }, new Curso.Domain.Funcionario { Nome = "Eduardo Pires", CPF = "77777777711", Rg = "1100062" } } }, new Curso.Domain.Departamento { Ativo = true, Descricao = "Departamento 03", }); db.SaveChanges(); db.ChangeTracker.Clear(); } } }
private static void RemoverRegistros() { using var db = new Data.ApplicationContext(); //var clienteRemover = db.Clientes.Find(4); var clienteRemover = new Cliente { Id = 3 }; //dessa forma ela só executa um comando no banco de dados db.Entry(clienteRemover).State = EntityState.Deleted; //db.Remove(clienteRemover); db.SaveChanges(); }
private static void InserirDadosEmMassa() { var produto = new Produto { Descricao = "Produto Teste", CodigoBarras = "12365447856981", Valor = 10m, TipoProduto = TipoProduto.MercadoriaParaRevenda, Ativo = true }; var cliente = new Cliente { Nome = "Usuario Teste", CEP = "88887775", Cidade = "Itabaiana", Estado = "SP", Telefone = "11236541236", }; var listaClientes = new[] { new Cliente { Nome = "Usuario Teste 2", CEP = "88887775", Cidade = "Itabaiana", Estado = "SP", Telefone = "11236541236", }, new Cliente { Nome = "Usuario Teste 3", CEP = "88887775", Cidade = "Itabaiana", Estado = "SP", Telefone = "11236541237", } }; using var db = new Data.ApplicationContext(); // db.AddRange(produto, cliente); db.Set <Cliente>().AddRange(listaClientes); //db.AddRange(listaClientes); var registros = db.SaveChanges(); Console.WriteLine($"Total Registro(s): {registros}"); Console.ReadKey(); }
public static void ConsultarDados() { using var db = new Data.ApplicationContext(); //var consultaPorSintaxe = (from c in db.Clientes where c.Id>0 select c).ToList(); var consultaPorMetodo = db.Clientes.Where(p => p.Id > 0).ToList(); foreach (var cliente in consultaPorMetodo) { Console.WriteLine($"Consultando Cliente: {cliente.Nome}"); db.Clientes.Find(cliente.Id); } }
public static void AtualizarDados() { using var db = new Data.ApplicationContext(); var cliente = db.Clientes.Find(1); cliente.Nome = "Cliente alterado 2"; //quando usa o update ele atualiza todos os dados da entidade, //quando você não utilzia a consulta de alteração ficar menos e mais performaartica //db.Update(cliente); db.SaveChanges(); }
static void CriarStoredProcedureConsulta() { var scriptSP = @" CREATE OR ALTER PROCEDURE SelecionarDepartamento @Descricao VARCHAR(50) AS BEGIN SELECT * FROM Departamentos WHERE Descricao LIKE @Descricao + '%' END"; using var db = new Curso.Data.ApplicationContext(); db.Database.ExecuteSqlRaw(scriptSP); }
private static void RemoverRegistros() { using var db = new Data.ApplicationContext(); //var cliente = db.Clientes.Find(3); var cliente = new Cliente { Id = 4 }; //db.Clientes.Remove(cliente); //db.Remove(cliente); db.Entry(cliente).State = EntityState.Deleted; db.SaveChanges(); Console.ReadKey(); }
static void CriarStoredProcedure() { var scriptSP = @" CREATE OR ALTER PROCEDURE CriarDepartamento @Descricao VARCHAR(50), @ATivo BIT AS BEGIN INSERT INTO Departamentos (Descricao, Ativo, Excluido) VALUES (@Descricao, @Ativo, 0) END"; using var db = new Curso.Data.ApplicationContext(); db.Database.ExecuteSqlRaw(scriptSP); }
private static void ConsultarDados() { using var db = new Data.ApplicationContext(); //var consultaPorSintaxe = (from c in db.Clientes where c.Id > 0 select c).ToList(); var consultaPorMetodo = db.Clientes .Where(p => p.Id > 0) .OrderBy(p => p.Id > 0) .ToList(); foreach (var cliente in consultaPorMetodo) { Console.WriteLine($"Consultando Cliente: {cliente.Id}"); //db.Clientes.Find(cliente.Id); db.Clientes.FirstOrDefault(p => p.Id == cliente.Id); } Console.ReadKey(); }
static void ConsultarDadosViaProcedure() { using var db = new Curso.Data.ApplicationContext(); var desc = new SqlParameter("@desc", "Dep"); var departamentos = db.Departamentos //.FromSqlRaw("EXECUTE SelecionarDepartamento @p0", "Dep") //.FromSqlRaw("EXECUTE SelecionarDepartamento @desc", desc) .FromSqlInterpolated($"EXECUTE SelecionarDepartamento {desc}") .ToList(); foreach (var dep in departamentos) { Console.WriteLine(dep.Descricao); } }
static void DivisaoDeConsulta() { using var db = new Curso.Data.ApplicationContext(); SetupDb(db); var departamentos = db.Departamentos .Include(p => p.Funcionarios) .AsSingleQuery() .Where(p => p.Id < 3) .ToList(); foreach (var dep in departamentos) { Console.WriteLine($"Descrição: {dep.Descricao}"); foreach (var func in dep.Funcionarios) { Console.WriteLine($"\tNome: {func.Nome}"); } } }
static void Main(string[] args) { using var db = new Data.ApplicationContext(); //aplicando as migrations na base de dados //db.Database.Migrate(); //var existe = db.Database.GetPendingMigrations().Any(); //if (existe) //{ // //validando se existe migrations pendentes //} //InserirDados(); //InserirDadosEmMassa(); //ConsultarDados(); //CadastrarPedido(); //ConsultarPedidoCarregamentoAdiantado(); //AtualizarDados(); //RemoverRegistros(); }
private static void InserirDados() { var produto = new Produto { Descricao = "Produto Teste", CodigoBarras = "12365447856981", Valor = 10m, TipoProduto = TipoProduto.MercadoriaParaRevenda, Ativo = true }; using var db = new Data.ApplicationContext(); db.Produtos.Add(produto); db.Set <Produto>().Add(produto); db.Entry(produto).State = EntityState.Added; db.Add(produto); var registros = db.SaveChanges(); Console.WriteLine($"Total Registro(s): {registros}"); Console.ReadKey(); }
private static void ExecutarEstrategiaResiliencia() { using var db = new Curso.Data.ApplicationContext(); var strategy = db.Database.CreateExecutionStrategy(); strategy.Execute(() => { using var transacation = db.Database.BeginTransaction(); var newDep = db.Departamentos.Add(new Departamento { Descricao = "Novo departamento adicionado" }); db.SaveChanges(); db.Funcionarios.Add(new Funcionario { DepartamentoId = newDep.Entity.Id, Nome = "Novo funcionario adicionado" }); db.SaveChanges(); transacation.Commit(); }); }
static void InserirDadosViaProcedure() { using var db = new Curso.Data.ApplicationContext(); db.Database.ExecuteSqlRaw("EXECUTE CriarDepartamento @p0, @p1", "Departamento novo", true); }
private static void Relacionamento1paraN() { using var db = new Curso.Data.ApplicationContext(); db.Database.EnsureDeleted(); db.Database.EnsureCreated(); var cliente = new Cliente() { Nome = "Nome do cliente", Endereco = new Endereco { Logradouro = "Rua das flores, 124", Bairro = "Jardin", Cidade = "Floricultura", Estado = "Flora do Sul" }, Profissao = new Profissao { Nome = "Cortador de galhos" } }; cliente.Telefones.Add(new Telefone() { DDD = 19, Numero = 34434533 }); cliente.Telefones.Add(new Telefone() { DDD = 11, Numero = 93445134 }); cliente.Contas.Add(new ContasReceber() { Valor = 100, Vencimento = DateTime.Now.AddDays(30) }); cliente.Contas.Add(new ContasReceber() { Valor = 200, Vencimento = DateTime.Now.AddDays(60) }); cliente.Contas.Add(new ContasReceber() { Valor = 300, Vencimento = DateTime.Now.AddDays(90) }); db.Clientes.Add(cliente); db.SaveChanges(); var clientes = db.Clientes .Include(c => c.Telefones) .Include(c => c.Contas) .AsNoTracking() .ToList(); clientes.ForEach(c => { Console.WriteLine($"Nome: {c.Nome} | Profissão: {c.Profissao.Nome }"); c.Telefones.ToList().ForEach(t => { Console.WriteLine($"- Telefone ({t.DDD}) {t.Numero}"); }); Console.WriteLine("------------CONTAS-------------"); c.Contas.ToList().ForEach(r => { Console.WriteLine($"- Valor: ({r.Valor.ToString("C")}) | Vencimento: {r.Vencimento}"); }); }); }