Entity Framework -  Atualizando para a versão 6/6.1

Nas versões anteriores do EF o código foi dividido entre bibliotecas centrais (principalmente System.Data.Entity.dll) enviados como parte do NET Framework. e em bibliotecas à parte(OOB)(principalmente EntityFramework.dll) enviados em um pacote NuGet.

O EF6 moveu o código das bibliotecas centrais incorporando-o nas bibliotecas OOB. Isso foi necessário, pois agora o EF é open source. A conseqüência disso é que as aplicações terão de ser reconstruídas contra os tipos movidos.

Para quem já usava a API DbContext(EF 4.1 em diante) esse trabalho é simples. Para quem ainda usa o ObjectContext o trabalho é maior mais não é difícil fazer.

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 a O/RM básico com a abordagem Database First.
EF 4.0 Suporte a 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 ao invés 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 ser 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 esta perdido pois ele permanece o mesmo não havendo uma mudança radical no seu funcionamento mas apenas em alguns recursos.

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

A seguir temos um checklist de coisas que você precisa fazer para atualizar sua aplicação atual para o Entity Framework 6.0 (Baseado integralmente no link: http://msdn.microsoft.com/pt-BR/data/upgradeEF6 )

Migração para o Entity Framework 6/6.1 - Lista de Verificação

1- Instalar o pacote Nuget do EF 6

Você precisa realizar a atualização para o novo runtime do Entity Framework 6:

Nota: Se uma versão anterior de um pacote Nuget EntityFramework estiver instalada ela será atualizada para o EF6.

Outra forma de obter o mesmo resultado e abrir o Package Manager Console via menu TOOLS -> Library Package Manager e digitar : Install-Package EntityFramework

Obs: Verifique se a execução completou com sucesso.

2- Certifique-se de que as referências de Assembly para o System.Data.Entity.dll sejam removidas

A instalação do pacote Nuget do Entity Framework 6 irá remover automaticamente qualquer referência a System.Data.Entity do seu projeto.

3- Troque qualquer model EF Designer (EDMX) para usar a geração de código EF 6.x

Se você tiver qualquer modelo criados com o Designer do EF, você terá que atualizar os modelos de geração de código para gerar o código compatível com o EF6.

Nota: Atualmente só existem modelos EF 6.x DbContext Generator disponíveis para o Visual Studio 2012 e 2013.

1- Exclua os modelos de geração de código existentes. Esses arquivos normalmente será chamados <edmx_file_name>.tt e <edmx_file_name>.Context.tt e estão aninhados sob seu arquivo EDMX no Solution Explorer. Você pode selecionar os modelos no Solution Explorer e pressionar a tecla Del para apagá-los .

    Nota: Em projetos Web Site os modelos não estarão aninhados sob o arquivo EDMX, mas listados ao lado dele na janela Solution Explorer.
    Nota: Em projetos VB.NET você precisa habilitar o item "Mostrar todos os arquivos" para ser capaz de ver os arquivos de modelo aninhados.

2- Adicione o modelo de geração de código EF 6.x adequado. Abra o seu modelo no Designer EF, clique com o botão direito na área de design e selecione Add Code Generation Item...

Se você estiver usando a API DbContext (recomendado), então o EF 6.x DbContext Generator estará disponível na guia Data.
Nota: Se você estiver usando o Visual Studio 2012 , você precisará instalar o EF 6 Tools  para ter este modelo. Consulte
Get Entity Framework

Se você estiver usando a API ObjectContext então você vai precisar selecionar a guia Online e procurar por EF 6.x EntityObject Generator.

3-  Se você aplicou qualquer personalização para os modelos de geração de código você precisa reaplicá-los para atualizar os modelos

4- Atualize os namespaces para todos os tipos EF core que estiverem sendo usados

Os namespaces para tipos DbContext e Code First não mudaram. Isso significa que para muitas aplicações que usam o EF 4.1 ou posterior nada vai precisar ser mudado.

Tipos como ObjectContext que estavam anteriormente em System.Data.Entity.dll foram transferidos para novos namespaces. Isto significa que você pode precisar atualizar suas diretivas using ou imports para para construir contra o EF6.

A regra geral para as mudanças de namespaces é que qualquer tipo de System.Data.* seja movido para System.Data.Entity.Core.*, ou seja, basta inserir Entity.Core. depois System.Data. Por exemplo:

Estes tipos estão em espaços de nomes fundamentais, porque eles não são usados diretamente para a maioria das aplicações baseadas em DbContext. Alguns tipos que faziam parte da System.Data.Entity.dll ainda são usados diretamente para aplicativos baseados em DbContext e por isso não foram movidos para os namespaces Core.  Eles são os seguintes :

Nota: Alguns tipos no namespace System.Data estão em System.Data.dll a qual não é um assembly Entity Framework. Esses tipos não foram movidos e assim seus namespaces permanecem inalterados.

Pronto ! seguindo os itens da lista sua aplicação estará migrada para o Entity Framework 6.0.

João 2:23 Ora, estando ele em Jerusalém pela festa da páscoa, muitos, vendo os sinais que fazia, creram no seu nome.

João 2:24 Mas o próprio Jesus não confiava a eles, porque os conhecia a todos,

João 2:25 e não necessitava de que alguém lhe desse testemunho do homem, pois bem sabia o que havia no homem.

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti