Quais as diferenças do EF6 para EF Core, será que vale a pena mudar?

Quais as diferenças do EF6 para EF Core, será que vale a pena mudar?

Fala Devs, quanto tempo hein!
Bom estou de volta e pretendo voltar a postas artigos técnicos para vocês.

E ai já migrou para o Entity Framework Core? Sabe as diferenças com relação ao EF?

A intenção deste post é ajudar a você entender quais as principais diferenças e se vale a pena ou não migrar.

Se você ainda não sabe o que é Entity Framework é basicamente um ORM (mapeador de objeto relacional) para .Net.

Bom o EF apesar de ser muito bom, tinha algumas limitações e uma delas que era bem grave era funcionar em um servidor Linux.
Não sei se vocês sabem, mas uma hospedagem Linux é muito, mais muito mais barata que uma hospedagem Windows.

Por este motivo surgiram inúmeras tecnologias que eram suportadas em servidores Linux.

O EF tem um recurso muito útil que é trabalhar com dados espaciais, ou seja, existe um tipo de dado chamado DBGeometry e DBGeography que permite utilizar consultas se baseando em rotas, distancias de um ponto e outro e etc.

Este recurso tinha uma dependência de uma dll do Windows que não era suportada no Linux, por este motivo o EF Core não herdou este recurso.

Bom vou listar abaixo os recursos que cada um tem e compara-los, assim você pode tirar suas próprias conclusões

Criar um modelo

Recurso EF 6 EF Core
Mapeamento de classe básico Sim 1.0
Construtores com parâmetros 2.1
Conversões de valor da propriedade 2.1
Tipos mapeados sem chaves 2.1
Convenções Sim 1.0
Convenções personalizadas Sim 1.0 (parcial)
Anotações de dados Sim 1.0
API fluente Sim 1.0
Herança: Tabela por hierarquia (TPH) Sim 1.0
Herança: Tabela por tipo (TPT) Sim
Herança: Tabela por classe concreta (TPC) Sim
Propriedades de estado sombra 1.0
Chaves alternativas 1.0
Muitos para muitos sem entidade de ingresso Sim
Geração de chave: Banco de Dados Sim 1.0
Geração de chave: Cliente 1.0
Tipos complexos/de propriedade Sim 2.0
Dados espaciais Sim 2.2
Visualização gráfica do modelo Sim
Editor de gráfico de modelo Sim
Formato de modelo: Código Sim 1.0
Formato de modelo: EDMX (XML) Sim
Criar modelo do banco de dados: Linha de comando Sim 1.0
Criar modelo do banco de dados: Assistente do VS Sim
Atualizar modelo do banco de dados Parcial
Filtros de consulta global 2.0
Divisão de tabela Sim 2.0
Divisão de entidade Sim
Mapeamento de função escalar do banco de dados Ruim 2.0
Mapeamento de campo 1.1
Tipos de referência anuláveis (C# 8.0) 3.0

Consultar dados

Recurso EF6 EF Core
Consultas LINQ Sim 1.0 (em andamento para consultas complexas)
SQL gerado legível Ruim 1.0
Conversão de GroupBy Sim 2.1
Carregando dados relacionados: Adiantado Sim 1.0
Carregando dados relacionados: Carregamento adiantado para tipos derivados 2.1
Carregando dados relacionados: Ocioso Sim 2.1
Carregando dados relacionados: Explícito Sim 1.1
Consultas SQL brutas: Tipos de entidade Sim 1.0
Consultas SQL brutas: Tipos de entidade sem chave Sim 2.1
Consultas SQL brutas: Como compor com o LINQ 1.0
Consultas explicitamente compiladas Ruim 2.0
Linguagem de consulta baseada em texto (Entity SQL) Sim
await foreach (C# 8.0) 3.0

Salvar dados

Recurso EF6 EF Core
Controle de alterações: Instantâneo Sim 1.0
Controle de alterações: Notificação Sim 1.0
Controle de alterações: Proxies Sim
Acesso ao estado controlado Sim 1.0
Simultaneidade otimista Sim 1.0
Transações Sim 1.0
Envio em lote de instruções 1.0
Mapeamento de procedimento armazenado Sim
APIs de baixo nível de grafo desconectado Ruim 1.0
Gráfico desconectado ponta a ponta 1.0 (parcial)

Outros recursos

Recurso EF6 EF Core
Migrações Sim 1.0
APIs de criação/exclusão de banco de dados Sim 1.0
Dados de propagação Sim 2.1
Resiliência da conexão Sim 1.1
Ganchos de ciclo de vida (eventos, interceptação) Sim
Registro em log simples (Database.Log) Sim
Pool de DbContext 2.0

Provedores de banco de dados

Recurso EF6 EF Core
SQL Server Sim 1.0
MySQL Sim 1.0
PostgreSQL Sim 1.0
Oracle Sim 1.0
SQLite Sim 1.0
SQL Server Compact Sim 1.0 (1)
DB2 Sim 1.0
Firebird Sim 2.0
Jet (Microsoft Access) 2.0 (1)
Cosmos DB 3.0
Na memória (para teste) 1.0

1 Os provedores do SQL Server Compact e do Jet só funcionam no .NET Framework (não no .NET Core).

Implementações do .NET

Recurso EF6 EF Core
.NET Framework Sim 1.0 (removido no 3.0)
.NET Core Sim (adicionado no 6.3) 1.0
Mono e Xamarin 1.0 (em andamento)
UWP 1.0 (em andamento)

E ai, já utilizou o Entity Framework Core?

O que achou?

Deixe abaixo seu comentário!

Se quiser conhecer meus treinamentos é só acessar o link abaixo:
https://link.ilovecode.com.br/paulorogerio

Previous Grátis - Aprenda criar APIS Robustas com Asp.Net Core
Next Ionic 5 é Lançado!

About author

Paulo Rogério
Paulo Rogério 183 posts

Sou apaixonado por tecnologia e adoro criar aplicações desktop, web e mobile. Adoro aprender e compartilhar conhecimento, meu hobby é ajudar as pessoas.

You might also like

FrontEnd 0 Comments

Grátis – Crie Apps com Ionic 3 e WebApi em Asp.Net Core usando DDD

Share this on WhatsAppFala galera, beleza? Bom espero que sim! Conforme prometido, venho anunciar o meu novo curso onde ensino criar um aplicativo em Ionic 3 e no BackEnd criamos

Visual Studio 0 Comments

Curso grátis – Dominando Linq e Lambda Expressions com C#

Share this on WhatsAppLinq é um set de recursos introduzidos no framework do dotnet que nos permite trabalhar  com coleções de dados de uma forma muito eficaz. Se você deseja

BackEnd 0 Comments

Confira as novidades do Entity Framework Core 5.0

Share this on WhatsAppFala galera, hoje venho compartilhar com vocês novidades do nosso querido Entity Framework 5. Entity Framework 5 será lançado junto ao .Net 5.0 e trará novidades muito

0 Comments

No Comments Yet!

You can be first to comment this post!

Leave a Reply