Entity Framework Core 5 - Preview 1

Recentemente tivemos o lançamento do Preview 1 do Entity Framework Core 5, que talvez seja uma das versões mais esperadas do Framework. Neste artigo vamos ver como utilizar esta versão e quais as primeiras novidades.

Antes de começar

Esta versão trata-se de um PREVIEW, ou seja, contém funcionalidades incompletas ou que serão drasticamente alteradas até sua versão final.

Desta forma, não recomendamos seu uso em produção ainda.

Instalando o .NET Core 5 Preview 1

Para utilizar o Entity Framework Core 5 Preview 1 você precisa primeiro realizar a instalação da versão nova do .NET Core.

Para isto, siga o processo de instalação do site oficial. Lembre-se que precisamos da SDK e não somente do Runtime.

Feito isto, você pode usar o comando dotnet --list-sdks para visualizar todas as SDKs instaladas em sua máquina:

dotnet --list-sdks  
2.2.207 [C:\Program Files\dotnet\sdk\]  
3.1.102 [C:\Program Files\dotnet\sdk\]  
5.0.100-preview.1.20155.7 [C:\Program Files\dotnet\sdk\]

E para saber a versão da SDK rodando, basta executar o comando dotnet --version:

dotnet --version  
5.0.100-preview.1.20155.7

Esta versão fica armazenada no global.json, e caso você precise voltar para uma versão anterior, você pode remover a versão atual ou executar o seguinte comando:

dotnet new globaljson --sdk-version 3.1.102 --force

Desta forma um novo arquivo global.json será gerado e sobrescreverá o anterior, com a versão especificada por você no comando.

Instalando o Entity Framework Core 5 - Preview 1

Para estes testes, criei apenas um Console Application, executando o comando:

dotnet new console -o EfCinco

Em seguida, podemos adicionar os pacotes do Entity Framework Core 5 utilizando os comandos:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-preview.2.20120.8  
dotnet add package Microsoft.EntityFrameworkCore.Design --version 5.0.0-preview.2.20120.8

O primeiro pacote dá suporte ao SQL Server, mas você pode utilizar o InMemory no lugar dele também, sem problemas.

O segundo adiciona suporte as migrações, que não é necessário caso esteja usando o banco em memória.

Note que todos os pacotes seguem o mesmo número de versão. Isto valerá para todos pacotes relacionados que você possuir.

Instalando .NET Tools - EF

Outra ferramenta que utilizamos com frequência é o EF Tools, que é instalado pelo comando dotnet ef, como nas migrações por exemplo.

Desta forma, vamos remover o EF Tools anterior e instalar o Preview. Você pode repetir este processo caso queira deixar de utilizar a versão Preview posteriormente.

dotnet tool uninstall --global dotnet-ef  
dotnet tool install --global dotnet-ef --version 5.0.0-preview.2.20120.8

Pronto, isto é tudo que precisamos para trabalhar com EF Core 5 - Preview 1. Agora vamos as novidades.

Suporte a Log facilitado

A primeira feature anunciada foi um suporte melhor e mais fácil ao log de informações que estão acontecendo na aplicação envolvendo o EF.

protected override void OnConfiguring(DbContextOptionsBuilder opt) ⇒ opt.LogTo(Console.WriteLine);

Utilizando esta opção, teremos as informações sendo exibidas no terminal, mas cuidado para não exibir informações sensíveis aí.

Ainda existem outras sobrecargas de métodos que permitem configurar quais e quanto de informações serão exibidas, bem como aplicar filtros a elas.

Visualizar a Query gerada

Para quem nunca confia na query que o EF gera, agora podemos executar um ToQueryString nas queries e simplesmente ver qual comando SQL será executado no banco.

var query = context.Set<customer>().Where(c => c.City == city);  
Console.WriteLine(query.ToQueryString())

Tabelas sem chave

Se você já utilizou EF alguma vez, principalmente com uma boa OOP, você sofreu na parte de mapear objetos de valor por exemplo, que não possuem uma chave.

O atributo Keyless chega justamente para definir que um objeto não tem uma chave primaria.

[Keyless]  
public class Address  
{  
    public string Street { get; set; }  
    public string City { get; set; }  
    public int Zip { get; set; }  
}

Alterar Connection String dinamicamente

Agora é possível alterar dinamicamente a Connection String de um Data Context, porém ainda não saiu nenhum material oficial com exemplos para este cenário.

Checagem de enumeradores

Durante a execução da migração, o EF Core será capaz de checar enumeradores, para garantir que nenhum valor incluso está fora de seu range.

EnumColumn VARCHAR(10) NOT NULL CHECK (MyEnumColumn IN('Useful', 'Useless', 'Unknown'))

Checagem de Banco

Agora podemos utilizar os comandos IsRelational, IsSqlServer, IsSqlLite e IsInMemory para checar qual banco estamos utilizando.

Esta é uma funcionalidade bem útil para quando você quer executar determinada ação apenas "em memória" ou apenas em um banco local com SQLite por exemplo.

Outras novidades

Você pode conferir todas as novidades no post oficial de anúncio do EF Core 5 Preview 1 e muitas outras novidades estão a caminho.

Vamos aguardar mais demos e principalmente o esperado NxN!

Populares

Priority Queue

Priority Queue ou fila prioritária é um tipo de lista inclusa no C# 10 que permite que seus itens...


Implicit Operators no C#

Implicit Operators permitem adicionar comportamentos de conversão a objetos Built In ou complexos...


ASP.NET 5 – Autenticação e Autorização com Bearer e JWT

Este artigo atualmente utiliza a versão 5.0.0-rc.1 do ASP.NET/.NET, o que significa que ainda não...


Clean Code - Guia e Exemplos

Saiba como manter seu código limpo (Clean Code) seguindo algumas práticas sugeridas pelo Robert C...


Git e GitHub - Instalação, Configuração e Primeiros Passos

Git é um sistema de controle de versões distribuídas, enquanto GitHub é uma plataforma que tem o ...


Compartilhe este artigo



Conheça o autor

Me dedico ao desenvolvimento de software desde 2003, sendo minha maior especialidade o Desenvolvimento Web. Durante esta jornada pude trabalhar presencialmente aqui no Brasil e Estados Unidos, atender remotamente times da ?ndia, Inglaterra e Holanda, receber 8x Microsoft MVP e realizar diversas consultorias em empresas e projetos de todos os tamanhos.





2.651

Aulas disponíveis

249

horas de conteúdo

65.213

Alunos matriculados

46.132

Certificados emitidos





Comece de graça agora mesmo!

Temos mais de 19 cursos totalmente de graça e todos com certificado de conclusão.

Começar


Prefere algo mais Premium?

Conheça nossos planos



Premium semestral

Compra única, parcelada em até
12x no cartão de crédito


12x R$

49

,78

=R$ 597,36
  • 6 meses de acesso
  • Acesso à todo conteúdo
  • Emissão de Certificado
  • Tira Dúvidas Online
  • 59 cursos disponíveis
  • 10 carreiras disponíveis
  • 161 temas de tecnologia
  • Conteúdo novo todo mês
  • Encontros Premium

Começar agora

Política de privacidade

Premium anual

Compra única, parcelada em até
12x no cartão de crédito


12x R$

84

,78

=R$ 1.017,36
  • 1 ano de acesso
  • Acesso à todo conteúdo
  • Emissão de Certificado
  • Tira Dúvidas Online
  • 59 cursos disponíveis
  • 10 carreiras disponíveis
  • 161 temas de tecnologia
  • Conteúdo novo todo mês
  • Encontros Premium

Começar agora

Política de privacidade



Precisa de ajuda?

Dúvidas frequentes



  • Posso começar de graça?

    Sim! Basta criar sua conta gratuita no balta.io e começar seus estudos. Nós contamos com diversos cursos TOTALMENTE gratuitos e com certificado de conclusão.

  • Vou ter que pagar algo?

    Nós temos cursos gratuitos e pagos, porém você não precisa informar nenhum dado de pagamento para começar seus estudos gratuitamente conosco. Os cursos gratuitos são completos e com certificado de conclusão, você não paga nada por eles.

    Porém, caso queira algo mais Premium , você terá acesso à diversos benefícios que vão te ajudar ainda mais em sua carreira.

  • Por onde devo começar?

    Siga SEMPRE as nossas Carreiras , elas vão te orientar em todos os sentidos. Os cursos já estão organizados em categorias e carreiras para facilitar seu aprendizado.
    Nossa sugestão para aprendizado é começar pelo Backend e seguindo para Frontend e Mobile.

    • Backend
    • Frontend
    • Mobile

  • Os cursos ensinam tudo que preciso?

    Nenhum curso no mundo vai te ensinar tudo, desculpa ser sincero! Os cursos são uma base, eles fornecem por volta de 30% do que você precisa aprender, o resto é com você, com dedicação e MUITA prática.

  • O que eu devo estudar?

    Java ou .NET? Angular ou React? Xamarin ou Flutter? A resposta é simples e direta: "Você já sabe o básico?"

    Se você ainda não sabe BEM o básico, ou seja, os fundamentos, OOP, SOLID, Clean Code, está perdendo tempo estudando Frameworks ou até coisas mais avançadas como Docker. Foque nos seus objetivos primeiro.
    Agora se você está indeciso sobre qual Framework estudar, a boa notícia é que o mercado neste momento está bem aquecido e você tem várias oportunidade. Desta forma o que levaríamos em conta para tomar esta decisão seria:

    • Já sei o básico
    • O Framework/Tecnologia tem mercado onde eu estou (região)
    • O Framework/Tecnologia é utilizado em uma empresa onde quero atual
    • O Framework/Tecnologia resolve meu problema
    • Eu gosto de utilizar o Framework/Tecnologia

  • Estou pronto para estudar no balta.io?

    Com certeza! O primeiro passo é começar e você pode fazer isto agora mesmo!

    Começar de graça

Ainda tem dúvidas?





Assine nosso Newsletter

Receba em primeira mão todas as nossas novidades.

Cadastrar


balta.io