Compartilhar via


Novidades no EF6

É altamente recomendável que você use a versão mais recente lançada do Entity Framework para garantir os recursos mais recentes e maior estabilidade. No entanto, sabemos que talvez você precise usar uma versão anterior, ou talvez queira fazer experiências com novos aprimoramentos no pré-lançamento mais recente. Para instalar versões específicas do EF, consulte Obter o Entity Framework.

EF 6.5.0

O runtime do EF 6.5.0 foi lançado para o NuGet em junho de 2024. A meta principal do EF 6.5 é incluir um novo provedor de Banco de Dados SQL do Azure/SQL Server. Confira a lista de correções importantes no Github. Estes são alguns dos mais notáveis:

  • Novo provedor do de Banco de Dados SQL do Azure/SQL Server (contribuído pela comunidade) – Microsoft.EntityFramework.SqlServer. Esse novo provedor usa o cliente moderno do SQL Server Microsoft.Data.SqlClient. Para obter mais informações sobre a configuração desse provedor, consulte Guia Microsoft.EntityFramework.SqlServer.
  • O utilitário ef6 foi atualizado para dar suporte apenas ao .NET 6 e mais recente. Ele também foi atualizado para dar suporte à leitura de arquivos app.config e dar suporte ao Windows ARM64.
  • O driver System.Data.SqlClient foi atualizado para a versão 4.8.6.

EF 6.4.0

O runtime do EF 6.4.0 foi lançado para o NuGet em dezembro de 2019. O objetivo principal do EF 6.4 é aprimorar os recursos e cenários fornecidos no EF 6.3. Confira a lista de correções importantes no Github.

EF 6.3.0

O runtime do EF 6.3.0 foi lançado para o NuGet em setembro de 2019. O principal objetivo desse lançamento é facilitar a migração de aplicativos existentes que usam o EF 6 para o .NET Core 3.0. A comunidade também contribuiu com diversos aprimoramentos e correções de bugs. Consulte os problemas fechados em cada marco do 6.3.0 para obter detalhes. Estes são alguns dos mais notáveis:

  • Suporte para .NET Core 3.0
    • Agora, o pacote do EntityFramework é destinado ao .NET Standard 2.1, além do .NET Framework 4.x.
    • Isso significa que o EF 6.3 é multiplataforma e tem suporte em outros sistemas operacionais além do Windows, como Linux e macOS.
    • Os comandos de migrações foram reescritos para executar fora do processo e trabalhar com projetos de estilo SDK.
  • Suporte para HierarchyId do SQL Server.
  • Melhoria da compatibilidade com PackageReference do Roslyn e do NuGet.
  • Adição do utilitário ef6.exe para habilitar, adicionar, executar scripts e aplicar migrações de assemblies. Substitui o migrate.exe.

Suporte ao designer do EF

Atualmente, não há suporte para usar o designer do EF diretamente em projetos do .NET Core ou .NET Standard ou em um projeto do .NET Framework no estilo SDK.

É possível contornar essa limitação adicionando o arquivo EDMX e as classes geradas para as entidades e o DbContext como arquivos vinculados a um projeto do .NET Core 3.0 ou .NET Standard 2.1 na mesma solução.

Os arquivos vinculados seriam semelhantes a este arquivo de projeto:

<ItemGroup>
  <EntityDeploy Include="..\EdmxDesignHost\Entities.edmx" Link="Model\Entities.edmx" />
  <Compile Include="..\EdmxDesignHost\Entities.Context.cs" Link="Model\Entities.Context.cs" />
  <Compile Include="..\EdmxDesignHost\Thing.cs" Link="Model\Thing.cs" />
  <Compile Include="..\EdmxDesignHost\Person.cs" Link="Model\Person.cs" />
</ItemGroup>

Observe que o arquivo EDMX está vinculado à ação de build de EntityDeploy. Essa é uma tarefa especial do MSBuild (agora incluída no pacote do EF 6.3), que adiciona o modelo do EF no assembly de destino como recursos incorporados ou o copia como arquivos na pasta de saída, dependendo da configuração de processamento de artefatos de metadados no EDMX. Para obter mais detalhes sobre como obter essa configuração, confira nosso Exemplo de EDMX no .NET Core.

Aviso: verifique se o projeto do .NET Framework do estilo antigo (ou seja, não SDK) que define o arquivo .edmx "real" é anterior ao projeto que define o link dentro do arquivo .sln. Caso contrário, ao abrir o arquivo .edmx no designer, você verá a mensagem de erro "O Entity Framework não está disponível na estrutura de destino especificada no momento para o projeto. Você pode alterar a estrutura de destino do projeto ou editar o modelo no XmlEditor".

Versões anteriores

A página Versões Anteriores contém um arquivo morto de todas as versões anteriores do EF e os principais recursos que foram introduzidos em cada versão.