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.