Ejemplo n.º 1
0
        public void AtualizarComTransacao()
        {
            using (var contexto = new PedidosEntities())
            {
                //contexto.SaveChanges() é transacionado com READ COMMITED.

                using (var transacao = new TransactionScope(TransactionScopeOption.Required,
                                                            new TransactionOptions {
                    IsolationLevel = IsolationLevel.Serializable
                }))
                {
                    var vendedor = new Vendedor();

                    var pessoa = new Pessoa();
                    pessoa.Email = "*****@*****.**";
                    pessoa.Nome  = "Outro Vendedor";

                    vendedor.Pessoa = pessoa;

                    contexto.Vendedor.Add(vendedor);

                    //throw new Exception();
                    //rollback: transacao.Dispose();

                    vendedor.Pessoa.PessoaDocumentos.Add(new PessoaDocumentos {
                        Numero = "1745", Tipo = (int)TipoDocumento.Cpf
                    });

                    contexto.SaveChanges();

                    transacao.Complete();
                }
            }
        }
Ejemplo n.º 2
0
        public void WhereVsSelectTeste()
        {
            using (var db = new PedidosEntities())
            {
                const string sqlWhere  = @"Select * from Produto where Custo > 12.50";
                const string sqlSelect = "Select Id, Descricao from Produto";

                var produtosWhere = from p in db.Produto
                                    where p.Custo > 12.5M
                                    select p;

                var produtosSelect = from p in db.Produto
                                     select new { p.Id, p.Descricao };

                var whereLambda  = db.Produto.Where(p => p.Custo > 12.5M);
                var selectLambda = db.Produto.Select(p => new { p.Id, p.Descricao });

                var produtosSql = db.Database.SqlQuery <Produto>(sqlSelect); // Erro: propriedade Custo não encontrada.

                foreach (var produto in produtosSql)
                {
                    Console.WriteLine("{0} - {1}", produto.Id, produto.Descricao);
                }
            }
        }
Ejemplo n.º 3
0
        public void UnionTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = @"Select * from Produto where Id in(1, 6, 5, 9)
                            union /*all*/ Select * from Produto where Id in(6, 17, 11)";

                var listaIds1 = new[] { 1, 6, 5, 9 };
                var listaIds2 = new[] { /*6,*/ 17, 11 };

                var produtos1 = from p in db.Produto
                                where listaIds1.Contains(p.Id)
                                select p;

                var produtos2 = from p in db.Produto
                                where listaIds2.Contains(p.Id)
                                select p;

                var produtos = produtos1.Union(produtos2);

                var produtosLambda = db.Produto.Where(p => listaIds1.Contains(p.Id))
                                     .Union(db.Produto.Where(p => listaIds2.Contains(p.Id)));
                //.Concat(db.Produto.Where(p => listaIds2.Contains(p.Id)));

                var produtosSql = db.Database.SqlQuery <Produto>(sql);

                foreach (var produto in produtos)
                {
                    Console.WriteLine("{0} - {1}", produto.Id, produto.Descricao);
                }
            }
        }
Ejemplo n.º 4
0
        public void ExcluirTeste()
        {
            using (var db = new PedidosEntities())
            {
                var cliente = db.Cliente.Single(c => c.Id == 8);
                var pessoa  = cliente.Pessoa;

                db.Cliente.Remove(cliente);
                db.Pessoa.Remove(pessoa);

                db.SaveChanges();
            }
        }
Ejemplo n.º 5
0
        public void AtualizarTeste()
        {
            using (var db = new PedidosEntities())
            {
                var cliente = db.Cliente.Single(c => c.Id == 1);

                var documento = new PessoaDocumentos();
                documento.Numero = "12845662858";
                documento.Tipo   = (int)TipoDocumento.Cpf;

                cliente.Pessoa.PessoaDocumentos.Add(documento);
                cliente.Pessoa.Nome = "Vítor Avelino";

                db.SaveChanges();
            }
        }
Ejemplo n.º 6
0
        public void InserirTeste()
        {
            using (var contexto = new PedidosEntities())
            {
                var cliente = new Cliente();

                var pessoa = new Pessoa();
                pessoa.Email = "*****@*****.**";
                pessoa.Nome  = "Vítor";

                cliente.Pessoa = pessoa;

                contexto.Cliente.Add(cliente);
                contexto.SaveChanges();
            }
        }
Ejemplo n.º 7
0
        public void CountTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = "Select Count(*) from Produto";

                var quantidadeProdutos = (from p in db.Produto
                                          select p).Count();

                var quantidadeLambda       = db.Produto.Count(p => p.TipoProduto.Descricao == "Papelaria");
                var quantidadeLambdaEquals = db.Produto.Count(p => p.TipoProduto.Descricao.Equals("Papelaria"));

                var quantidadeSql = db.Database.SqlQuery <int>(sql).FirstOrDefault();

                Console.WriteLine("{0} - {1} - {2} - {3}", quantidadeProdutos, quantidadeLambda, quantidadeSql, quantidadeLambdaEquals);
            }
        }
Ejemplo n.º 8
0
        public void MinTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = "Select Min(Custo) from Produto";

                var maiorCusto = (from p in db.Produto
                                  select p).Max(p => p.Custo);

                var custoMedio = db.Produto.Average(p => p.Custo);

                var soma = db.Produto.Sum(p => (p.Custo * 1.1m));

                var menorCusto = db.Database.SqlQuery <decimal>(sql).FirstOrDefault();

                Console.WriteLine("{0} - {1} - {2} - {3}", maiorCusto, custoMedio, menorCusto, soma);
            }
        }
Ejemplo n.º 9
0
        public void TakeTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = @"Rodar o Express Profiler";

                var produtos = (from p in db.Produto
                                orderby p.Descricao
                                select p).Skip(5).Take(5);

                var produtosLambda = db.Produto.OrderBy(p => p.Descricao).Skip(2).Take(2);

                foreach (var produto in produtosLambda)
                {
                    Console.WriteLine("{0} - {1}", produto.Id, produto.Descricao);
                }
            }
        }
Ejemplo n.º 10
0
        private void ModuloReportes_Load(object sender, EventArgs e)
        {
            using (ReportClientesEntities db = new ReportClientesEntities())
                sPReporteClientesResultBindingSource.DataSource = db.SP_ReporteClientes().ToList();

            using (ProductosEntities dprod = new ProductosEntities())
                sPReporteProductosResultBindingSource.DataSource = dprod.SP_ReporteProductos().ToList();

            using (ReportClientesEntities dcli = new ReportClientesEntities())
                sPReporteClientesResultBindingSource.DataSource = dcli.SP_ReporteClientes().ToList();

            using (PedidosEntities dped = new PedidosEntities())
                sPReportePedidosResultBindingSource.DataSource = dped.SP_ReportePedidos().ToList();

            this.reportViewer1.RefreshReport();
            this.reportViewer2.RefreshReport();
            this.reportViewer3.RefreshReport();
        }
Ejemplo n.º 11
0
        public void SelecionarTeste()
        {
            using (var db = new PedidosEntities())
            {
                var clientes = db.Cliente.Where(c => c.Pessoa.Nome.Contains("v"));

                foreach (var cliente in clientes)
                {
                    Console.WriteLine(cliente.Pessoa.Nome);
                }

                var documentos = db.PessoaDocumentos.Where(pd => pd.Numero == "12845662858");

                foreach (var documento in documentos)
                {
                    Console.WriteLine(documento.Pessoa.Nome);
                }
            }
        }
Ejemplo n.º 12
0
        public void LikeTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = "Select * from Produto where Descricao like '%p%'";

                var produtos = from p in db.Produto
                               where p.Descricao.Contains("can")
                               select p;

                var produtosLambda = db.Produto.Where(p => p.Descricao.Contains("bor"));

                var produtosSql = db.Database.SqlQuery <Produto>(sql);

                foreach (var produto in produtosSql)
                {
                    Console.WriteLine(produto.Descricao);
                }
            }
        }
Ejemplo n.º 13
0
        public void DistinctTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = @"Select distinct TP.Descricao from Produto P 
                            inner join TipoProduto TP on TP.Id = P.TipoProduto_Id";

                var tiposDistintos = (from p in db.Produto
                                      select p.TipoProduto.Descricao).Distinct();

                var tiposDistintosLambda = db.Produto.Select(p => p.TipoProduto.Descricao).Distinct();

                var tiposDistintosSql = db.Database.SqlQuery <string>(sql);

                foreach (var tipo in tiposDistintos)
                {
                    Console.WriteLine(tipo);
                }
            }
        }
Ejemplo n.º 14
0
        public void InTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = @"Select * from Produto where Id in(1, 6, 5, 9)";

                var listaIds = new[] { 1, 6, 5, 9 };

                var produtos = from p in db.Produto
                               where listaIds.Contains(p.Id)
                               select p;

                var produtosLambda = db.Produto.Where(p => listaIds.Contains(p.Id));

                var produtosSql = db.Database.SqlQuery <Produto>(sql);

                foreach (var produto in produtosSql)
                {
                    Console.WriteLine("{0} - {1}", produto.Id, produto.Descricao);
                }
            }
        }
Ejemplo n.º 15
0
        public void OrderByTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = "Select * from Produto order by Descricao, Custo desc";

                var produtos = from p in db.Produto
                               orderby p.Descricao
                               orderby p.Custo descending
                               select p;

                //var produtosLambda = db.Produto.OrderBy(p => p.Id).OrderByDescending(p => p.Custo).ThenBy( p => p.Id);
                var produtosLambda = db.Produto.OrderBy(p => new { p.Id, p.Descricao });


                foreach (var produto in produtos)
                {
                    Console.WriteLine("{0} - {1}", produto.Id, produto.Descricao);
                }

                Console.WriteLine(new string('-', 50));

                foreach (var produto in produtosLambda)
                {
                    Console.WriteLine("{0} - {1}", produto.Id, produto.Descricao);
                }

                var produtosSql = db.Database.SqlQuery <Produto>(sql);

                Console.WriteLine(new string('-', 50));

                foreach (var produto in produtosSql)
                {
                    Console.WriteLine("{0} - {1} - {2}", produto.Id, produto.Descricao, produto.Custo);
                }
            }
        }
Ejemplo n.º 16
0
        public void GroupByTeste()
        {
            using (var db = new PedidosEntities())
            {
                var sql = @"Select Count(P.TipoProduto_Id) as Total, TP.Descricao as Tipo from Produto P 
                            inner join TipoProduto TP on TP.Id = P.TipoProduto_Id
                            group by TP.Id, TP.Descricao";

                var agrupamento = from p in db.Produto
                                  group p by p.TipoProduto into grupo
                                  //orderby grupo.Key.Descricao
                                  //where grupo.Count() > 1
                                  select new { Tipo = grupo.Key.Descricao, Total = grupo.Count() };

                var agrupamentoLambda = db.Produto.GroupBy(p => p.TipoProduto).Select(grupo => new { Tipo = grupo.Key.Descricao, Total = grupo.Count() });

                var agrupamentoSql = db.Database.SqlQuery <Agrupamento>(sql);

                foreach (var item in agrupamentoSql)
                {
                    Console.WriteLine("{0}: {1}", item.Tipo, item.Total);
                }
            }
        }