コード例 #1
0
ファイル: Program.cs プロジェクト: ClairtonLopesJr/LABS
        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();
        }
コード例 #2
0
ファイル: UsuarioDao.cs プロジェクト: ClairtonLopesJr/LABS
        private EntidadesContext contexto; // instancia da EntidadeContext

        #endregion Fields

        #region Constructors

        public UsuarioDAO(EntidadesContext contexto)
        {
            this.contexto = contexto;
        }
コード例 #3
0
ファイル: ProdutoDAO.cs プロジェクト: ClairtonLopesJr/LABS
 public ProdutoDAO(EntidadesContext contexto)
 {
     this.contexto = contexto;
 }
コード例 #4
0
ファイル: CategoriaDAO.cs プロジェクト: ClairtonLopesJr/LABS
 public CategoriaDAO(EntidadesContext contexto)
 {
     this.contexto = contexto;
 }