Introdução ao Entity Framework Core: Mapeamento Objeto-Relacional em C#

24/09/2024

Introdução ao Entity Framework Core: Mapeamento Objeto-Relacional em C#

O Entity Framework Core (EF Core) é uma poderosa biblioteca de mapeamento objeto-relacional (ORM) para C#, que permite interagir com bancos de dados de forma eficiente e intuitiva. Com o EF Core, os desenvolvedores podem trabalhar com dados usando objetos C# em vez de escrever consultas SQL diretamente. Neste artigo, vamos explorar os conceitos básicos do EF Core e como utilizá-lo em suas aplicações.

1. O que é Mapeamento Objeto-Relacional (ORM)?

O Mapeamento Objeto-Relacional é uma técnica que permite que dados de um banco de dados relacional sejam representados como objetos em uma linguagem de programação. Isso facilita a interação com o banco de dados, pois os desenvolvedores podem trabalhar com objetos em vez de lidar diretamente com consultas SQL.

2. O que é Entity Framework Core?

O Entity Framework Core é uma versão leve e extensível do Entity Framework, projetada para ser multiplataforma. Ele oferece suporte a várias bases de dados, como SQL Server, SQLite, PostgreSQL e MySQL. O EF Core permite que você faça operações CRUD (Create, Read, Update, Delete) de forma simples e rápida, além de suportar LINQ para consultas.

3. Configurando o Entity Framework Core

Para começar a usar o EF Core em seu projeto, você precisará instalá-lo através do NuGet. Você pode fazer isso executando o seguinte comando no console do NuGet:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer

Após a instalação, você pode criar um contexto de banco de dados que herda de DbContext.

4. Criando o Modelo de Dados

Um modelo de dados representa as tabelas do banco de dados como classes C#. Aqui está um exemplo simples de um modelo de produto:

public class Produto
{
    public int Id { get; set; }
    public string Nome { get; set; }
    public decimal Preco { get; set; }
}

5. Criando o DbContext

O DbContext é a classe principal do EF Core, responsável por gerenciar a conexão com o banco de dados e as operações de CRUD. Aqui está um exemplo de como configurar o DbContext:

using Microsoft.EntityFrameworkCore;

    public class MeuContexto : DbContext
    {
        public DbSet Produtos { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("sua_string_de_conexão");
        }
    }

6. Operações CRUD com EF Core

O EF Core simplifica as operações CRUD. Aqui estão exemplos de como adicionar, ler, atualizar e excluir produtos:

using (var context = new MeuContexto())
{
    // Adicionar
    var novoProduto = new Produto { Nome = "Produto A", Preco = 10.00M };
    context.Produtos.Add(novoProduto);
    context.SaveChanges();

    // Ler
    var produtos = context.Produtos.ToList();

    // Atualizar
    var produtoExistente = context.Produtos.First();
    produtoExistente.Preco = 12.00M;
    context.SaveChanges();

    // Excluir
    context.Produtos.Remove(produtoExistente);
    context.SaveChanges();
}

7. Consultas com LINQ

Você pode usar LINQ para consultar dados de maneira eficiente. Aqui está um exemplo de como filtrar produtos com um preço específico:

using (var context = new MeuContexto())
{
    var produtosCaros = context.Produtos
                                .Where(p => p.Preco > 15.00M)
                                .ToList();
}

8. Migrations e Atualizações de Banco de Dados

O EF Core suporta migrations, permitindo que você controle as alterações na estrutura do banco de dados. Para adicionar uma migration, use o seguinte comando no console do NuGet:

Add-Migration NomeDaMigration

Para aplicar a migration e atualizar o banco de dados, use:

Update-Database

Conclusão

O Entity Framework Core é uma ferramenta poderosa para o desenvolvimento de aplicações em C#, facilitando o mapeamento objeto-relacional e a manipulação de dados. Ao entender como configurar e utilizar o EF Core, você pode criar aplicações mais eficientes e escaláveis. Experimente implementar o EF Core em seus projetos e veja como ele pode melhorar sua produtividade no desenvolvimento.