Exemplo n.º 1
0
        /*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);
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }