Entity Framework - Database code first

Nesta aula iremos criar uma database com tabelas relacionadas para um sistema de vendas, depois iremos utilizar o Entity Framework para gerar os modelos que iremos trabalhar.

assinaturaAssine nossa Comunidade

Asp Net MVC - Entity Framework

Database Code First

Nesta aula vamos utilizar o Entity Framework -Database Code First para programar o banco de dados, como se nós fossemos um DBA, fazendo todo o diagrama de relacionamento e depois vamos gerar todo o código através do Entity Framework.

Serão mostradas algumas estratégias de como colocar o nome do banco de dados quando você estiver utilizando o entity framework ou mapeamento code first e programar esse plano de ação que iremos fazer

No SQL Server, vamos criar um banco de dados chamado VendasWeb e as tabelas abaixo:

  • Cliente
  • Produto
  • Pedido
  • PedidoProduto

Tabela de Cliente

Nome da Coluna Tipo de Dados
id int
Nome varchar(50)
Telefone varchar(20)
Email varbinary(200)

Tabela de Produto

Nome da Coluna Tipo de Dados
id int
Nome varchar(50)
Valor float

Tabela de Pedido

Nome da Coluna Tipo de Dados
Id int
ClienteID int
ValorTotal float

Tabela de PedidoProduto

Nome da Coluna Tipo de Dados
Id int
PedidoID int
ProdutoID int
Valor float
Vamos fazer o vínculo da tabela Cliente com a tabela Pedido
Tabela de Chaves Primarias Tabela de chaves estrangeiras
Cliente Pedido
Id ClienteId
Vamos fazer o vínculo da tabela PedidoProduto com a tabela Produto
Tabela de Chaves Primarias Tabela de chaves estrangeiras
Produto PedidoProduto
Id ProdutoId
Vamos fazer o vínculo da tabela PedidoProduto com a tabela Pedido
Tabela de Chaves Primarias Tabela de chaves estrangeiras
Pedido PedidoProduto
Id PedidoId

Vamos criar um projeto Console Application.

  • Clicar com o botão direito no nome da solução do projeto;
  • Menu Adicionar->Novo Projeto;
  • Selecionar Console Application;
  • Nomear o projeto EFDatabaseCode

Clicar com o botão direito no nome do projeto EFDatabaseCode:

  • Menu Adicionar->Novo Item;
  • Selecionar Dados;
  • Selecionar ADO.NET Entity Data Model;
  • Nomear como VendaWebContext;
  • Clicar em Adicionar;
  • Selecionar Code First from database;
  • Clicar em Avançar;
  • Fazer a conexão com o Banco de Dados;
  • Selecionar o Database VendasWeb;
  • Selecionar todas as tabelas do Database VendasWeb;
  • Clicar no botão COncluir

Após fazermos todo o processo acima, podemos verificar nos arquivos do projeto, que foram adicionadas nas referências o EntityFramework e o EntityFrameworkSqlServer, fazendo todas as configurações automaticamente.

No arquivo App.config, podemos verificar que ja existe a configuração da conexão com o banco de dados:

        
        < ?xml version="1.0" encoding="utf-8"?>
        < configuration>
          < connectionStringk>
            < add name="VendaWebContext" connectionString="data source=DIDOX-WINDOWS\SQLEXPRESS;initial catalog="VendasWeb;" />
          < /connectionStringk>
        < /configuration > 
      
    

Foi gerado o arquivo VendasWebContext.cs e as classes Produto, Cliente, Pedido e PedidoProduto, automaticamente.

      
        namespace EFDatabaseCode
        {
          public partial class VendasWebContext: DBContext
          {
            public virtual DbSet< Cliente> Cliente {get;set;}
            public virtual DbSet< Pedido> Pedido {get;set;}
            public virtual DbSet< PedidoProduto> PedidoProduto {get;set;}
            public virtual DbSet< Produto> Produto {get;set;}
          }
        }
       
    

No Projeto Console Application, podemos utilizar as classes que foram criadas para retornar os dados.

      
            
        namespace EFDatabaseCode  
          class Program 
            {
              static void Main(string[] args)
              {
                var clientes  = new VendasWebContext().Cliente.ToList();
                Cliente cliente = clientes[0];

                var produtos  = new VendasWebContext().Produto.ToList();
                Produto produto = produtos[0];

                var pedidos  = new VendasWebContext().Pedido.ToList();
                Pedido pedido = pedidos[0];

                var pedidoProdutos  = new VendasWebContext().PedidoProduto.ToList();
                PedidoProduto pedidoProduto = pedidoProdutos[0];

              }
            }
    
       
    

Entity Framework - Database code first

Nesta aula iremos criar uma database com tabelas relacionadas para um sistema de vendas, depois iremos utilizar o Entity Framework para gerar os modelos que iremos trabalhar.

Próximas Aulas:
assinaturaAssine nossa Comunidade

Asp Net MVC - Entity Framework

Database Code First

Nesta aula vamos utilizar o Entity Framework -Database Code First para programar o banco de dados, como se nós fossemos um DBA, fazendo todo o diagrama de relacionamento e depois vamos gerar todo o código através do Entity Framework.

Serão mostradas algumas estratégias de como colocar o nome do banco de dados quando você estiver utilizando o entity framework ou mapeamento code first e programar esse plano de ação que iremos fazer

No SQL Server, vamos criar um banco de dados chamado VendasWeb e as tabelas abaixo:

  • Cliente
  • Produto
  • Pedido
  • PedidoProduto

Tabela de Cliente

Nome da Coluna Tipo de Dados
id int
Nome varchar(50)
Telefone varchar(20)
Email varbinary(200)

Tabela de Produto

Nome da Coluna Tipo de Dados
id int
Nome varchar(50)
Valor float

Tabela de Pedido

Nome da Coluna Tipo de Dados
Id int
ClienteID int
ValorTotal float

Tabela de PedidoProduto

Nome da Coluna Tipo de Dados
Id int
PedidoID int
ProdutoID int
Valor float
Vamos fazer o vínculo da tabela Cliente com a tabela Pedido
Tabela de Chaves Primarias Tabela de chaves estrangeiras
Cliente Pedido
Id ClienteId
Vamos fazer o vínculo da tabela PedidoProduto com a tabela Produto
Tabela de Chaves Primarias Tabela de chaves estrangeiras
Produto PedidoProduto
Id ProdutoId
Vamos fazer o vínculo da tabela PedidoProduto com a tabela Pedido
Tabela de Chaves Primarias Tabela de chaves estrangeiras
Pedido PedidoProduto
Id PedidoId

Vamos criar um projeto Console Application.

  • Clicar com o botão direito no nome da solução do projeto;
  • Menu Adicionar->Novo Projeto;
  • Selecionar Console Application;
  • Nomear o projeto EFDatabaseCode

Clicar com o botão direito no nome do projeto EFDatabaseCode:

  • Menu Adicionar->Novo Item;
  • Selecionar Dados;
  • Selecionar ADO.NET Entity Data Model;
  • Nomear como VendaWebContext;
  • Clicar em Adicionar;
  • Selecionar Code First from database;
  • Clicar em Avançar;
  • Fazer a conexão com o Banco de Dados;
  • Selecionar o Database VendasWeb;
  • Selecionar todas as tabelas do Database VendasWeb;
  • Clicar no botão COncluir

Após fazermos todo o processo acima, podemos verificar nos arquivos do projeto, que foram adicionadas nas referências o EntityFramework e o EntityFrameworkSqlServer, fazendo todas as configurações automaticamente.

No arquivo App.config, podemos verificar que ja existe a configuração da conexão com o banco de dados:

        
        < ?xml version="1.0" encoding="utf-8"?>
        < configuration>
          < connectionStringk>
            < add name="VendaWebContext" connectionString="data source=DIDOX-WINDOWS\SQLEXPRESS;initial catalog="VendasWeb;" />
          < /connectionStringk>
        < /configuration > 
      
    

Foi gerado o arquivo VendasWebContext.cs e as classes Produto, Cliente, Pedido e PedidoProduto, automaticamente.

      
        namespace EFDatabaseCode
        {
          public partial class VendasWebContext: DBContext
          {
            public virtual DbSet< Cliente> Cliente {get;set;}
            public virtual DbSet< Pedido> Pedido {get;set;}
            public virtual DbSet< PedidoProduto> PedidoProduto {get;set;}
            public virtual DbSet< Produto> Produto {get;set;}
          }
        }
       
    

No Projeto Console Application, podemos utilizar as classes que foram criadas para retornar os dados.

      
            
        namespace EFDatabaseCode  
          class Program 
            {
              static void Main(string[] args)
              {
                var clientes  = new VendasWebContext().Cliente.ToList();
                Cliente cliente = clientes[0];

                var produtos  = new VendasWebContext().Produto.ToList();
                Produto produto = produtos[0];

                var pedidos  = new VendasWebContext().Pedido.ToList();
                Pedido pedido = pedidos[0];

                var pedidoProdutos  = new VendasWebContext().PedidoProduto.ToList();
                PedidoProduto pedidoProduto = pedidoProdutos[0];

              }
            }