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.
Uma tarefa de trabalho tem uma situação, representada pela propriedade Status, de tipo enum TaskStatus.
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.
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.
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!
Dev .NET Sênior com experiências para Irlanda e Estados Unidos, 2x Microsoft MVP, 9x Microsoft Certified, MBA em Arquitetura de Soluções, Fundador e Instrutor LuisDev Treinamentos,