Entity Framework: o que é e como usar no .NET e C#

Rocketseat

Navegação Rápida:
Você já passou horas escrevendo consultas SQL complexas e repetitivas? Já se perdeu em meio a tanto código para interagir com o banco de dados? Imagine conseguir trabalhar com bancos de dados sem precisar escrever comandos SQL diretamente. Parece mágica, né? Mas é exatamente isso que o Entity Framework faz. Neste artigo, você vai entender como essa poderosa ferramenta pode simplificar muito seu dia a dia ao programar em C# e no ecossistema .NET. Bora lá?
O que é ORM?
Antes de entrarmos no Entity Framework, vamos entender o que é ORM (mapeamento objeto-relacional). Imagine que você está viajando para outro país e não fala a língua local. Para se comunicar, você usa um tradutor, que interpreta tudo o que você diz e o que escuta, certo?
O ORM é exatamente isso: um "tradutor" que conecta dois mundos diferentes—o dos objetos em código (C#) e o mundo dos bancos de dados relacionais (SQL).
Veja um exemplo rápido:
- Sem ORM (com SQL):
SELECT * FROM Produtos WHERE Preco < 100;
- Com ORM (usando objetos C#):
var produtosBaratos = contexto.Produtos.Where(p => p.Preco < 100);
Benefícios de usar um ORM:
- Menos código repetitivo.
- Maior produtividade.
- Facilidade de manutenção.
- Código limpo e organizado.
O que é o Entity Framework?
O Entity Framework (EF) é o ORM mais utilizado pelos desenvolvedores .NET. Criado pela Microsoft, ele simplifica o acesso ao banco de dados, permitindo que você trabalhe diretamente com objetos em C#, sem precisar dominar profundamente comandos SQL complexos.
Desde sua primeira versão até o atual Entity Framework Core, ele evoluiu para se tornar uma ferramenta ainda mais eficiente, ágil e versátil.
Principais recursos e vantagens
Mapeamento objeto-relacional
O Entity Framework traduz automaticamente suas classes C# em tabelas do banco de dados e vice-versa.
Consultas LINQ
LINQ permite consultar dados de forma simples e intuitiva:
var produtos = contexto.Produtos.Where(p => p.Categoria == "Cursos Rocketseat");
Migrations
Permitem acompanhar e aplicar alterações no banco de dados automaticamente conforme seu projeto evolui.
Rastreamento de alterações
Automaticamente detecta e salva alterações nos objetos no banco.
Suporte a diversos bancos de dados
Você pode usar SQL Server, MySQL, PostgreSQL e SQLite, entre outros.
Como o Entity Framework funciona? (exemplo prático)
O EF trabalha com:
- Modelo conceitual: representação abstrata do banco.
- DbContext: uma classe especial que gerencia as operações no banco.
- DbSet: representa as tabelas no banco.
Veja na prática:
// Classe que representa uma tabela de produtos public class Produto { public int Id { get; set; } public string Nome { get; set; } public int Duracao { get; set; } // duração em horas } // Classe DbContext public class RocketseatContext : DbContext { public DbSet<Produto> Produtos { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlite("Data Source=rocketseat.db"); } // Adicionando um novo produto com duração de 100 horas var contexto = new RocketseatContext(); contexto.Produtos.Add(new Produto { Nome = "Formação C# Rocketseat", Duracao = 100 }); contexto.SaveChanges(); // Consultando produtos var cursos = contexto.Produtos.ToList(); // Esse código define uma entidade (Produto) com propriedades Id, Nome e Duracao (em horas), // e também o contexto de banco de dados (RocketseatContext) utilizado pelo Entity Framework. // Em seguida, cria uma nova instância do contexto, adiciona um novo produto ("Formação C# Rocketseat") // com duração de 100 horas, e salva essa informação no banco SQLite chamado 'rocketseat.db'. // Por fim, recupera e armazena todos os produtos cadastrados no banco em uma lista (cursos).
Mãos na massa: um exemplo simples
Passo a passo:
- Crie um projeto novo no .NET usando o VS Code.
- Instale o Entity Framework Core com
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
.
- Defina as classes e o contexto conforme exemplo acima.
- Execute comandos de migração:
dotnet ef migrations add Inicial dotnet ef database update
- Realize operações CRUD e veja tudo funcionando facilmente!
Indo além: próximos passos
Quer avançar mais? O Entity Framework oferece:
- Lazy loading: os dados relacionados são carregados apenas quando solicitados pela primeira vez, economizando recursos.
- Eager loading: os dados relacionados são carregados imediatamente junto com a entidade principal, útil para evitar consultas repetidas ao banco de dados.
- Consultas complexas e eficientes com LINQ.
- Uso de transações.
- Integração com Stored Procedures.
Recursos adicionais
Para aprofundar ainda mais seus conhecimentos, confira estes recursos:
Continue evoluindo com Rocketseat!
Se você gostou do Entity Framework e quer se aprofundar em C# e .NET, temos uma ótima notícia: a Formação C# da Rocketseat é o caminho perfeito para você!
A formação oferece:
- Conteúdo completo e atualizado.
- Projetos práticos e reais.
- Certificado reconhecido pelo mercado.
- Uma comunidade incrível para te apoiar.
Dê um passo adiante na sua carreira e venha descobrir como o universo .NET pode ser empolgante e cheio de oportunidades!
Agora que você conhece o Entity Framework, coloque a mão no código e veja como seu aprendizado pode ser divertido, gratificante e, acima de tudo, transformar sua carreira!
Artigos_
Explore conteúdos relacionados
Descubra mais artigos que complementam seu aprendizado e expandem seu conhecimento.