Entity Framework - Database First Approach

Neste capítulo, vamos aprender como criar um modelo de dados de entidade com a abordagem Database First.

  • A abordagem do banco de dados primeiro fornece uma alternativa para as abordagens Code First e Model First para o Entity Data Model. Ele cria códigos de modelo (classes, propriedades, DbContext etc.) do banco de dados no projeto e essas classes tornam-se o elo entre o banco de dados e o controlador.

  • O Database First Approach cria a estrutura da entidade a partir de um banco de dados existente. Usamos todas as outras funcionalidades, como a sincronização do modelo / banco de dados e a geração de código, da mesma forma que as usamos na abordagem Model First.

Vamos dar um exemplo simples. Já temos um banco de dados que contém 3 tabelas, conforme mostrado na imagem a seguir.

Step 1 - Vamos criar um novo projeto de console com o nome DatabaseFirstDemo.

Step 2 - Para criar o modelo, primeiro clique com o botão direito do mouse em seu projeto de console no gerenciador de soluções e selecione Adicionar → Novos itens ...

Step 3 - Selecione ADO.NET Entity Data Model no painel do meio e insira o nome DatabaseFirstModel no campo Nome.

Step 4 - Clique no botão Adicionar que iniciará a caixa de diálogo Assistente de modelo de dados de entidade.

Step 5 - Selecione EF Designer do banco de dados e clique no botão Avançar.

Step 6 - Selecione o banco de dados existente e clique em Avançar.

Step 7 - Escolha Entity Framework 6.xe clique em Avançar.

Step 8 - Selecione todas as visualizações de tabelas e procedimentos armazenados que deseja incluir e clique em Concluir.

Você verá que o modelo de entidade e as classes POCO são gerados a partir do banco de dados.

Vamos agora recuperar todos os alunos do banco de dados escrevendo o seguinte código no arquivo program.cs.

using System;
using System.Linq;

namespace DatabaseFirstDemo {

   class Program {

      static void Main(string[] args) {

         using (var db = new UniContextEntities()) {

            var query = from b in db.Students
               orderby b.FirstMidName select b;

            Console.WriteLine("All All student in the database:");

            foreach (var item in query) {
               Console.WriteLine(item.FirstMidName +" "+ item.LastName);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
         }
      }
   }
}

Quando o programa acima for executado, você receberá a seguinte saída -

All student in the database:
Ali Khan
Arturo   finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...

Quando o programa acima for executado, você verá os nomes de todos os alunos que foram inseridos anteriormente no banco de dados.

Recomendamos que você execute o exemplo acima passo a passo para melhor compreensão.