/*private static int ExcluirProdutos(string nome) * { * using var db = new NorthwindDb(); * var produtos = db.Produtos.Where(p => p.Nome.StartsWith(nome)); * db.RemoveRange(produtos); * int affected = db.SaveChanges(); * return affected; * }*/ private static int ExcluirProdutos(string nome) { using var db = new NorthwindDb(); //Marca o escopo de uma transação do objeto db: using IDbContextTransaction t = db.Database.BeginTransaction(); WriteLine($"Isolamento de transação: {t.GetDbTransaction().IsolationLevel}"); var produtos = db.Produtos.Where(p => p.Nome.StartsWith(nome)); db.RemoveRange(produtos); int affected = db.SaveChanges(); t.Commit(); return(affected); }
private static void CenarioDesconectado() { // Cenário desconectado --> entidades desconectadas var e1 = new Empregado { Nome = "Grace", Sobrenome = "Hopper" }; //var e2 = new Empregado { Id = 2, Nome = "Steve Gary", Sobrenome = "Wozniak" }; using var db = new NorthwindDb(); // 1. Anexar as entidades ao contexto db.Add <Empregado>(e1); //db.Update<Empregado>(e2); // Caso não exista, será inserido. //db.Remove<Empregado>(e3); //2. Chamar db.SaveChanges para inserir o registro; db.SaveChanges(); }
private static bool AdicionarProduto(string nomeProduto, decimal?preco, int categoriaId) { using var db = new NorthwindDb(); var produto = new Produto { Nome = nomeProduto, Preco = preco, CategoriaId = categoriaId }; // Marcar este produto como ADICIONADO no change tracker: db.Produtos.Add(produto); // Persistir mudanças no BD: int affected = db.SaveChanges(); return(affected == 1); }
private static bool AjustarPrecoProduto(string nome, decimal valor) { using var db = new NorthwindDb(); int affectedCount = 1; //Recuperar o primeiro produto que atender ao nome especificado e atualizar seu preço: /*var produto = db.Produtos.First(p => p.Nome.StartsWith(nome)); * produto.Preco += valor;*/ var produtos = db.Produtos.Where(p => p.Nome.StartsWith(nome)); foreach (var p in produtos) { p.Preco += valor; affectedCount++; } int affected = db.SaveChanges(); return(affected == affectedCount); }