Back-End

6 out, 2015

Curso Entity Framework – A abordagem Database First

Publicidade

A abordagem DataBase First é uma alternativa às abordagens Code-First e Model-First e cria um Entity Data Model (classes, propriedades, DBContext etc.) a partir de um banco de dados existente.

O Entity Framework 6.0 introduziu novos recursos interessantes para as abordagens database first e code first.

Para você se situar, na tabela a seguir temos uma apresentação de cada versão do EF e seus principais recursos:

Versão Principais Recursos
EF 3.5 Suporte para O/RM básico com a abordagem Database First.
EF 4.0 Suporte para POCO, Lazy loading, melhoria na testabilidade, geração de código customizada e a abordagem Model First.
EF 4.1 Disponibilizado também via pacote NuGet, API DBContext Simplificada em vez de ObjectContext, abordagem Code First (correção de bugs com a versão EF 4.1.1).
EF 4.3 Recurso Code First Migrations que permite que um banco de dados criado via Code First seja gradativamente alterado conforme o modelo Code First evoluir. Liberação da versão EF 4.3.1 para correção de bugs do EF 4.3.
EF 5.0 Anunciado EF como Open Source. Apoio a Enum Introduzido, funções com valor de tabela, tipos de dados espaciais, vários diagramas por modelo, coloração de formas na superfície de projeto e importação de lote de procedimentos armazenados, EF Power Tools e várias melhorias de desempenho.
EF 6.0/6.1 Inclui muitos novos recursos relacionadas ao Code-First e ao descritor EF, como consulta e persistência assíncrona, resilência da resolução de dependências etc.

Mas não se assuste, o Entity Framework 6.0 é uma evolução, e tudo o que você já aprendeu e já conhece sobre o Entity Framework não está perdido, pois ele permanece o mesmo, não havendo uma mudança no seu funcionamento, apenas em alguns recursos.

Veja o site oficial do Entity Framework no Nuget: http://www.nuget.org/packages/EntityFramework.

Vejamos um resumo das principais novidades da nova versão.

1 – Recursos para DataBase First e Code First

  • Resilência da Conexão – Suporte para recuperação de operações em caso de falhas e instabilidades em conexões;
  • Consultar e Salvar Assíncronos (async / await) – Recursos para executar consultas e comandos de forma assíncrona;
  • Configuração baseada no código;
  • Registro de comandos de banco de dados;
  • Comando de interceptação de banco de dados;
  • Dependência de resolução;
  • DbSet.AddRange/RemoveRange – Comandos para incluir e remover múltiplas entidades de um conjunto;
  • Melhor suporte para transações – Novos recursos – DbContext.Database.UseTransaction e DbContext.Database.BeginTransaction, para controlar transações;
  • Serviço plugável de pluralização e singularização;
  • Criação de contexto com uma conexão aberta – O DbContext agora pode ser criado com uma DbConnection que já esteja aberta;
  • Melhor desempenho e tempo de aquecimento – Melhoria na performance de consultas LINQ com Enumerable.Contains;

Esta abordagem foi amplamente utilizada na aula Entity Framework – Criando o modelo de entidades.

Na próxima aula, vamos tratar do ciclo de vida das entidades no Entity Framework.