O que é o Entity Framework Core?
A maioria dos aplicativos Web não triviais precisa executar operações confiáveis em dados, como criar, ler, atualizar e excluir (CRUD). Eles também precisam persistir quaisquer alterações feitas por essas operações entre as reinicializações do aplicativo. Embora existam várias opções para a persistência de dados em aplicativos .NET, o Entity Framework (EF) Core é uma solução amigável e uma ótima opção para muitos aplicativos .NET.
Compreender o EF Core
O EF Core é uma tecnologia de acesso a dados leve, extensível, de código aberto e multiplataforma para aplicativos .NET.
O EF Core pode servir como um mapeador objeto-relacional, que:
- Permite que os desenvolvedores .NET trabalhem com um banco de dados usando objetos .NET.
- Elimina a necessidade da maioria do código de acesso a dados que normalmente precisa ser escrito.
O EF Core suporta um grande número de bancos de dados populares, incluindo SQLite, MySQL, PostgreSQL, Oracle e Microsoft SQL Server.
O modelo
Com o EF Core, o acesso aos dados é realizado usando um modelo. Um modelo é composto de classes de entidade e um objeto de contexto que representa uma sessão com o banco de dados. O objeto de contexto permite consultar e salvar dados.
A classe de entidade
Nesse cenário, você está implementando uma API de gerenciamento de pizzaria, portanto, você usa uma classe de Pizza entidade. As pizzas da sua loja têm um nome e uma descrição. Eles também precisam de um ID para permitir que a API e o banco de dados os identifiquem. A Pizza classe de entidade que você usa em seu aplicativo identifica pizzas:
namespace PizzaStore.Models
{
public class Pizza
{
public int Id { get; set; }
public string? Name { get; set; }
public string? Description { get; set; }
}
}
A classe de contexto
Este aplicativo tem apenas uma classe de entidade, mas a maioria dos aplicativos tem várias classes de entidade. A classe de contexto é responsável por consultar e salvar dados em suas classes de entidade e por criar e gerenciar a conexão de banco de dados.
Execute operações CRUD com o EF Core
Depois que o EF Core estiver configurado, você poderá usá-lo para executar operações CRUD em suas classes de entidade. Em seguida, você pode desenvolver em classes C#, delegando as operações de banco de dados para a classe de contexto. Os provedores de banco de dados, por sua vez, o traduzem para a linguagem de consulta específica do banco de dados. Um exemplo é SQL para um banco de dados relacional. As consultas são sempre executadas no banco de dados, mesmo que as entidades retornadas no resultado já existam no contexto.
Consultar os dados
O objeto context expõe uma classe de coleção para cada tipo de entidade. No exemplo anterior, a classe context expõe uma coleção de Pizza objetos como Pizzas. Dado que temos uma instância da classe de contexto, você pode consultar o banco de dados para todas as pizzas:
var pizzas = await db.Pizzas.ToListAsync();
Inserir dados
Você pode usar o mesmo objeto de contexto para inserir uma nova pizza:
await db.pizzas.AddAsync(
new Pizza { ID = 1, Name = "Pepperoni", Description = "The classic pepperoni pizza" });
Eliminar dados
As operações de exclusão são simples. Eles exigem apenas um ID do item a ser excluído:
var pizza = await db.pizzas.FindAsync(id);
if (pizza is null)
{
//Handle error
}
db.pizzas.Remove(pizza);
Atualizar dados
Da mesma forma, você pode atualizar uma pizza existente:
int id = 1;
var updatepizza = new Pizza { Name = "Pineapple", Description = "Ummmm?" };
var pizza = await db.pizzas.FindAsync(id);
if (pizza is null)
{
//Handle error
}
pizza.Description = updatepizza.Description;
pizza.Name = updatepizza.Name;
await db.SaveChangesAsync();
Usar o banco de dados na memória do EF Core
O EF Core inclui um provedor de banco de dados na memória que pode ser usado para testar seu aplicativo. O provedor de banco de dados na memória é útil para teste e desenvolvimento, mas não deve ser usado na produção. Na próxima unidade, você usará o provedor de banco de dados na memória para criar um banco de dados e executar operações CRUD nele.