🎯 Objetivo: Neste capítulo, você aprenderá como armazenar informações de forma permanente, permitindo que seus dados sobrevivam mesmo depois que o programa for fechado. Você irá explorar a persistência de dados com um foco especial em bancos de dados relacionais e o poderoso Entity Framework Core.

🤔 O Problema: Dados Voláteis

Até agora, todos os dados que manipulamos em nossos programas (variáveis, listas, etc.) existem apenas na memória RAM. Quando o programa termina, todos esses dados são perdidos.

Imagine um aplicativo de lista de tarefas. Se ele não salvar as tarefas em algum lugar, cada vez que o usuário o abrir, a lista estará vazia. Para que os dados "sobrevivam", eles precisam ser escritos em um meio de armazenamento persistente, como um arquivo ou um banco de dados.

A persistência de dados é o conceito de armazenar e recuperar dados em um armazenamento não-volátil.

💾 Abordagens de Persistência

Existem várias formas de persistir dados, mas as mais comuns em C# são:

  1. Serialização em Arquivos: Útil para dados simples, como configurações ou pequenos objetos. O objeto é convertido para um formato de texto (como JSON ou XML) e salvo em um arquivo. É uma abordagem rápida, mas não é eficiente para grandes volumes de dados ou para consultas complexas.
  2. Bancos de Dados: A solução padrão da indústria para dados estruturados. Eles permitem armazenar, consultar, atualizar e excluir grandes volumes de dados de forma eficiente e segura.

Para a maioria das aplicações profissionais, bancos de dados são a escolha preferida. Para trabalhar com eles em C#, o ideal é usar um ORM (Object-Relational Mapper).


✨ Entity Framework Core: O Poder da Mapeamento Objeto-Relacional

O Entity Framework Core (EF Core) é o ORM oficial da Microsoft. Ele atua como uma ponte entre o seu código C# e o banco de dados. Em vez de escrever comandos SQL manualmente, você manipula objetos C# (suas classes) e o EF Core traduz essas operações para comandos de banco de dados (como INSERT, SELECT, UPDATE).

Este capítulo irá focar em usar o EF Core com o PostgreSQL, um dos bancos de dados relacionais mais populares.


🛠️ Exemplo Prático: Gerenciando Produtos com EF Core

Vamos persistir nossa classe Produto em um banco de dados PostgreSQL.

Passo 1: Instale os Pacotes NuGet

Abra o terminal do seu projeto e adicione os seguintes pacotes: