Criando uma Lista de Contatos com Entity Framework Core e SQLite
- #.NET Core
- #SQLite
- #C #
O Entity Framework Core (EF Core) é um ORM ( Mapeamento de Objeto Relacional ) que facilita o trabalho com bancos de dados em aplicações .NET. Neste tutorial, iremos aprender a criar uma lista de contatos simples usando o EF Core com SQLite como banco de dados. Fique a vontade para incrementar validações e exercitar outras habilidades neste projeto.
1. Criando o Projeto
Acesse a pasta de seus projetos e no terminal digite os seguintes comandos
dotnet new console -o AgendaContatos
cd AgendaContatos
O comando dotnet new console -o AgendaContatos irá criar o seu projeto dotnet do tipo console (modo texto) na pasta AgendaContatos que será criada na execução do comando.
O nome você pode mudar de acordo com o nome que deseja dar ao projeto
O comando cd AgendaContatos entra na pasta criada com o codigo de incio do projeto.
2. Instalando os Pacotes
Adicione os pacotes do EF Core para SQLite:
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
dotnet add package Microsoft.EntityFrameworkCore.Tools
Os comando anteriores irão instalar os pacotes adequandos para o seu banco de dados sqlite
3. Criando o Modelo Contato
A classe Contato será o Modelo (Model) que iremos usar para gerar o banco de dados
public class Contato
{
public int Id { get; set; } // Chave primária
public string Nome { get; set; } // Nome do contato
public string Telefone { get; set; } // Telefone
public string Email { get; set; } // E-mail
}
4. Criando o AppDbContext
Classe responsavel por criar o contexto do banco de dados. O Entity Framework Core usa esta classe para saber qual das classes serão utilizadas como modelos do seu banco de dados.
Observe no codigo a seguir que adicionamos como propiedade a classe Contatos do tipo DbSet<Contatos>{get;set;}
Veja tambem optionsBuilder.UseSqlite("Data Source=agenda.db"). Nesta linha esta configurado o arquivo do banco de dados Sqlite
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DbContext
{
public DbSet<Contato> Contatos { get; set; }//classe Contatos adicionada ao contexto de banco de dados
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=agenda.db");//arquivo de banco de dados definido
}
}
5. Criando a Migração e o Banco
Agora, vamos gerar o banco de dados:
- Criar a migração inicial:
dotnet ef migrations add Inicial
- Aplicar a migração (criar
agenda.db
):
dotnet ef database update
6. Inserindo Contatos
Exemplo de código para inserir contatos na agenda:
class Program
{
static void Main()
{
using var db = new AppDbContext();
var contato = new Contato
{
Nome = "Maria Silva",
Telefone = "(93) 99111-2233",
Email = "maria@email.com"
};
db.Contatos.Add(contato);
db.SaveChanges();
Console.WriteLine("Contato salvo com sucesso!");
}
}
7. Listando Contatos
Para listar todos os contatos cadastrados:
using (var db = new AppDbContext())
{
var contatos = db.Contatos.ToList();
foreach (var c in contatos)
{
Console.WriteLine($"{c.Id} - {c.Nome} - {c.Telefone} - {c.Email}");
}
}
8. Atualizando Contatos
Exemplo de alteração do telefone de um contato:
using (var db = new AppDbContext())
{
var contato = db.Contatos.First();
contato.Telefone = "(93) 98888-7766";
db.SaveChanges();
Console.WriteLine("Contato atualizado!");
}
9. Removendo Contatos
Exemplo de exclusão de um contato:
using (var db = new AppDbContext())
{
var contato = db.Contatos.First();
db.Contatos.Remove(contato);
db.SaveChanges();
Console.WriteLine("Contato removido!");
}
10. Explorando o Banco
O arquivo agenda.db pode ser aberto com ferramentas como:
- DB Browser for SQLite (gratuito)
- Extensões do VS Code para SQLite
Assim, você pode visualizar a tabela Contatos
e os registros de forma gráfica.
Observação
Neste Projeto não usamos uma estruta de pastas para organizar o prjeto podendos os arquivos ficarem todos na rais do sistema.
Porem é uma boa pratica separar as responsabilidades por pastas crando uma estrutura mais organizada para o projeto.
Aqui está um diagrama de organização que você pode adotar:
A pasta de Migrations e os arquivos contidos nela são gerados altomaticamente na cração das migrations
AgendaContatos/
│
├── Models/
│ └── Contato.cs # Classe de modelo (representa a tabela Contatos)
│
├── Data/
│ └── AppDbContext.cs # Classe de contexto do banco de dados
│
├── Migrations/ # Arquivos gerados automaticamente pelo EF Core
│ ├── 20230903010101_Inicial.cs
│ └── AppDbContextModelSnapshot.cs
│
├── Program.cs # Código principal do programa (CRUD)
│
├── AgendaContatos.csproj # Arquivo de configuração do projeto
└── agenda.db # Arquivo do banco SQLite gerado
Considerações Finais
Chegamos ao fim deste tutorial sobre como criar uma lista de contatos com Entity Framework Core e SQLite. 🚀
Ao longo do projeto, aprendemos a:
- Criar um projeto .NET Console
- Instalar e configurar o Entity Framework Core
- Definir um modelo de dados (Contato)
- Configurar o DbContext
- Criar e aplicar migrações
- Realizar operações básicas de CRUD (inserir, listar, atualizar e remover)
- Organizar a estrutura do projeto de forma mais clara e profissional
Este é apenas o primeiro passo. A partir daqui, você pode expandir a aplicação para incluir:
- Validações (ex.: verificar se o telefone ou e-mail já existem)
- Interface Gráfica (Windows Forms, WPF ou MAUI)
- API Web para acessar os contatos de qualquer lugar
- Relacionamentos (ex.: contatos agrupados por categorias)
Agradecimento
Muito obrigado por acompanhar este tutorial até o final! 🙏
Espero que ele tenha sido útil para você dar os primeiros passos com o Entity Framework Core e o SQLite.
Continue praticando, explore novos desafios e lembre-se: a melhor forma de aprender programação é colocar a mão no código.