static void Main(string[] args) { EntidadesContext contexto = new EntidadesContext(); // Cadastrando, Alterando e Excluindo com EF. #region /* // DAO do Usuario. UsuarioDao dao = new UsuarioDao(); // Todas as entidades saõ gerenciadas. // Estado unchanged. Usuario zeca = dao.BuscaPorId(1); // Buscando Usuario. //Estado Modified. zeca.Nome = "Zeca Alterado"; // estado Added. dao.Salva(new Usuario()); // Estado Deleted //dao.Remove(zeca); dao.SaveChanges(); */ #endregion // Relacionamento entre Entidades. #region /* // Criando Categoria para teste. Categoria c = new Categoria() { Nome = "Informatica" }; contexto.Categorias.Add(c); // Adicionando Categoria no banco. contexto.SaveChanges(); // Criando produto. Produto p = new Produto() { Nome = "Teclado", Preco = 30, CategoriaID = 1 }; contexto.Produtos.Add(p); // adicionando produto no banco. contexto.SaveChanges(); // ------ Pesquisas entre relacionamentos de Entidades -------. // Precisamos utilizar o método include por que por padrão o entity framework na versão 7 não carrega os relacionamentos. Produto p = contexto.Produtos.Include(produto => produto.Categoria).FirstOrDefault(produto => produto.ID == 1); Console.WriteLine(p.Categoria.Nome); var categoria = contexto.Categorias.Include(c => c.Produtos).FirstOrDefault(c => c.ID == 1); foreach (var produto in categoria.Produtos) { Console.WriteLine(produto.Nome); } */ #endregion // Recuperando Dados - LINQ. #region // Usar LINQ facilita a escrita de consultas personalizadas, além de ser possível de referenciar as nossas entidades como classes e nao como tablea do banco, evitando diversos joins // e tornando LINQ mais legível do que SQL. Com LINQ não nos preocupamos com os detalhes de SQL que muda de banco para banco. /* var busca = from p in contexto.Produtos where p.Preco > 20 orderby p.Nome select p; IList<Produto> resultado = busca.ToList(); foreach (var produto in resultado) { Console.WriteLine(produto.Nome); } */ #endregion // Relacionamento Many-to-Many #region /* // Cadastrando Venda com varios usuarios var usuarioDAO = new UsuarioDAO(contexto); var produtoDAO = new ProdutoDAO(contexto); var user1 = usuarioDAO.BuscaPorId(1); // Buscando usuario pelo ID. // Associando um usuario a uma venda. var venda = new Venda() { Cliente = user1 }; var primeiroProduto = produtoDAO.BuscaPorId(1); var segundoProduto = produtoDAO.BuscaPorId(2); // Associando um produto a uma venda. var produtoVenda1 = new ProdutoVenda() { Venda = venda, Produto = primeiroProduto }; // Associando outro produto a mesma venda acima. var produtoVenda2 = new ProdutoVenda() { Venda = venda, Produto = segundoProduto }; contexto.Vendas.Add(venda); // add vendas no bd. // Add informações na tabela associativa entre produtos e vendas. contexto.ProdutosVendas.Add(produtoVenda1); contexto.ProdutosVendas.Add(produtoVenda2); contexto.SaveChanges(); */ #endregion // Trabalhando com herança. #region PessoaFisica pf = new PessoaFisica() { Nome = "Carlos", CPF = "123456", Senha = "123" }; contexto.PessoasFisicas.Add(pf); PessoaJuridica pj = new PessoaJuridica() { Nome = "TechAltos", CNPJ = "19082", Senha = "123" }; contexto.PessoasJuridica.Add(pj); contexto.SaveChanges(); #endregion Console.ReadLine(); }
private EntidadesContext contexto; // instancia da EntidadeContext #endregion Fields #region Constructors public UsuarioDAO(EntidadesContext contexto) { this.contexto = contexto; }
public ProdutoDAO(EntidadesContext contexto) { this.contexto = contexto; }
public CategoriaDAO(EntidadesContext contexto) { this.contexto = contexto; }