Introdução ao Entity Framework Core

O Entity Framework Core é uma das principais bibliotecas para acesso a dados no ecossistema .NET. Ele fornece uma maneira fácil e eficiente de acessar e manipular dados em sua aplicação, sem se preocupar com a complexidade do banco de dados subjacente.

Este artigo é destinado a desenvolvedores de nível iniciante que estão começando a trabalhar com Entity Framework Core e querem aprender mais sobre suas funcionalidades e como usá-lo em seus projetos.

Sobre acesso a dados

Antes de entrar em detalhes sobre o Entity Framework Core, é importante compreender o conceito de camada de acesso a dados. A camada de acesso a dados é uma camada intermediária entre seu aplicativo e o banco de dados, responsável por gerenciar a comunicação entre eles. Isso permite que você se concentre na lógica do seu aplicativo, sem se preocupar com detalhes técnicos do banco de dados.

Geralmente essa camada de acesso a dados é expressa por classes intituladas repositórios de dados, ou DAO (Data Access Objects).

Falo sobre Padrão Repository com EF Core e SQL Server em outro artigo.

Em .NET temos diversas maneiras de implementar o acesso a dados, como:

  • ADO.NET: É uma API para acesso a dados do .NET que permite a interação com bancos de dados e fontes de dados.
  • Dapper: É uma biblioteca de mapeamento objeto-relacional (ORM) de código aberto que fornece uma maneira rápida e fácil de trabalhar com dados de banco de dados.
  • Entity Framework Core: É um ORM desenvolvido pela Microsoft que permite aos desenvolvedores trabalhar com dados do banco de dados usando objetos do .NET. Oferece suporte a vários bancos de dados, incluindo SQL Server, MySQL, e PostgreSQL.

Em projetos, no geral, é mais comum utilizar o Entity Framework Core e o Dapper. O ADO.NET segue sendo bastante utilizado, mas em cenários onde o maior controle e desempenho são necessários.

Vamos focar neste artigo no Entity Framework Core. Vamos lá?

Sobre o Entity Framework Core

O Entity Framework Core é uma biblioteca ORM que implementa a camada de acesso a dados, baseada em objetos relacionais. Ele permite que você trabalhe com dados do banco de dados como objetos de sua aplicação, sem precisar escrever código SQL para acessá-los. Isso significa que você pode escrever seu código definindo classes e seus relacionamentos, e o Entity Framework se encarrega de traduzir os objetos delas em instruções SQL para o banco de dados.

Ele também é altamente personalizável, permitindo que você configure a maneira como seus dados são mapeados para seus objetos e vice-versa.

Os principais conceitos e componentes do Entity Framework Core incluem:

  • Modelo de Dados: É a representação do banco de dados como objetos da sua aplicação. Ele é criado a partir de suas entidades, relacionamentos e propriedades.
  • Entidade: Classe que representa uma tabela ou uma coleção de dados em seu banco de dados. As entidades são mapeadas para tabelas e suas propriedades são mapeadas para colunas.
    • No Entity Framework Core a classe DbSet<T> é utilizada para as operações de acesso a dados de entidades.
  • Contexto de Dados: Representa a conexão com o banco de dados e é responsável por gerenciar as entidades, realizar operações de banco de dados e persistir as alterações nas entidades. Além disso, também são feitas as configurações das entidades.
  • LINQ: Linguagem de Consulta Integrada é uma linguagem de consulta de dados que permite que você execute consultas no modelo de dados usando sintaxe de programação.
  • Migrations: Permite que você gerencie as alterações no banco de dados, incluindo adição, remoção e alteração de tabelas e colunas.
  • Provedor de Dados: É responsável por fornecer suporte a diferentes tipos de bancos de dados, incluindo SQL Server, MySQL, Cosmos DB, PostgreSQL, SQLite, em memória, e outros.

Como começar

Vamos utilizar um modelo de dados com a entidade WorkTask, que representa uma tarefa de trabalho em nosso contexto de projeto.

Entidade WorkTask, representando uma tarefa de trabalho

Uma tarefa de trabalho tem uma situação, representada pela propriedade Status, de tipo enum TaskStatus.

Enum TaskStatus, representando a situação de uma tarefa de trabalho

Para começar a usar o Entity Framework Core, você precisa adicioná-lo como uma dependência ao seu projeto .NET. Isso pode ser feito usando o Gerenciador de Pacotes NuGet no Visual Studio.

Vamos utilizar o pacote Microsoft. EntityFrameworkCore.InMemory, para utilizar o provedor de dados em memória. O código para adicioná-lo utilizando a .NET CLI pode ser encontrado abaixo.

dotnet add package Microsoft.EntityFrameworkCore.InMemory

Em artigos futuros vamos utilizar um banco de dados, mas por enquanto é melhor simplificar.

Em seguida, precisamos criar uma classe de contexto do Entity Framework que representa sua conexão com o banco de dados. Esta classe é usada para gerenciar suas entidades e realizar operações de banco de dados, como consultar, inserir, atualizar e excluir dados.

Contexto de dados

Explicando algumas partes desse código:

  • Linha 1: herdamos de DbContext para poder definir a classe como um contexto de dados do Entity Framework Core
  • Linha 3 e 4: DbContextOptions vai conter todas as informações de configuração necessários, como Connection String, provedor de banco de dados, entre outros. Configuraremos nosso contexto de dados na classe Program.
  • Linha 8: propriedade que representa a coleção de nossa entidade, onde vamos poder utilizar LINQ para realizar as operações de acesso a dados.
  • Linha 10 a 15: configuração de nosso contexto de dados e entidade. Aqui definimos a chave primária Id da entidade WorkTask.

Com isto, apenas precisamos adicionar a seguinte linha de código na classe Program.

Configuração do Entity Framework Core e nosso contexto de dados, na classe Program.

Eu a coloco logo antes da chamada builder.Services.AddControllers();

Com isso, estamos prontos para os próximos passos!


Quer alavancar sua carreira como Desenvolvedor(a) .NET?

Opa, aqui é o Luis Felipe (LuisDev), criador do blog LuisDev.

Além de Desenvolvedor .NET Sênior, eu sou instrutor de mais de 700 alunos e também tenho dezenas de mentorados.

Conheça o com mais de 800 video-aulas sobre C# e desenvolvimento de APIs com ASP NET Core, Microsserviços com ASP NET Core, Arquitetura de Software, Computação em Nuvem, SQL, HTML, CSS e JavaScript, JavaScript Intermediário, TypeScript, Desenvolvimento Front-End com Angular, e Desenvolvimento Front-end com React. Diversos mini-cursos disponíveis aos alunos e atualizações gratuitas.

Suporte dedicado, e comunidade de centenas de alunos.

Completo e online, destinado a profissionais que querem dar seu próximo passo em sua carreira como desenvolvedores .NET.

Clique aqui para ter mais informações e garantir sua vaga


Conclusão

No próximo artigo iremos explorar as operações possíveis de se realizar com o Entity Framework Core, aplicadas em um projeto de API com ASP.NET Core.

Também será coberto, em um artigo futuro, como criar configurações da entidade usando o Entity Framework Core, e também gerar e aplicar as Migrations utilizando o banco de dados SQL Server.

Até o próximo artigo!