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(); } } }
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); } } }
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); } } }
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(); } }
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(); } }
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(); } }
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); } }
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); } }
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); } } }
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(); }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }