Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você criará um aplicativo de console do .NET que executa o acesso a dados em um banco de dados SQLite usando o Entity Framework Core.
Você pode seguir o tutorial usando o Visual Studio no Windows ou usando a CLI do .NET no Windows, macOS ou Linux.
Exiba o exemplo deste artigo no GitHub.
Prerequisites
Instale o software a seguir:
Criar um novo projeto
dotnet new console -o EFGetStarted
cd EFGetStarted
Instalar o Entity Framework Core
Para instalar o EF Core, instale o pacote para o(s) provedor(es) de banco de dados EF Core que você deseja utilizar. Este tutorial usa o SQLite porque ele é executado em todas as plataformas compatíveis com o .NET. Para obter uma lista de provedores disponíveis, consulte Provedores de Banco de Dados.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Criar o modelo
Defina uma classe de contexto e classes de entidade que compõem o modelo.
- No diretório do projeto, crie Model.cs com o código a seguir
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public string DbPath { get; }
public BloggingContext()
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
DbPath = System.IO.Path.Join(path, "blogging.db");
}
// The following configures EF to create a Sqlite database file in the
// special "local" folder for your platform.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; } = new();
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
O EF Core também pode fazer engenharia reversa de um modelo de um banco de dados existente.
Dica: este aplicativo intencionalmente mantém as coisas simples para maior clareza. As cadeias de conexão não devem ser armazenadas no código para aplicativos de produção. Talvez você também queira dividir cada classe C# em seu próprio arquivo.
Criar o banco de dados
As etapas a seguir usam migrações para criar um banco de dados.
Execute os comandos a seguir:
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database updateIsso instala o dotnet ef e o pacote de design que é necessário para executar o comando em um projeto. O comando
migrationsrealiza o scaffolding de uma migração e cria o conjunto inicial de tabelas para o modelo. Odatabase updatecomando cria o banco de dados e aplica a nova migração a ele.
Criar, ler, atualizar & excluir
Abra Program.cs e substitua o conteúdo pelo seguinte código:
using System; using System.Linq; using Microsoft.EntityFrameworkCore; using var db = new BloggingContext(); // Note: This sample requires the database to be created before running. Console.WriteLine($"Database path: {db.DbPath}."); // Create Console.WriteLine("Inserting a new blog"); db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" }); await db.SaveChangesAsync(); // Read Console.WriteLine("Querying for a blog"); var blog = await db.Blogs .OrderBy(b => b.BlogId) .FirstAsync(); // Update Console.WriteLine("Updating the blog and adding a post"); blog.Url = "https://devblogs.microsoft.com/dotnet"; blog.Posts.Add( new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" }); await db.SaveChangesAsync(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); await db.SaveChangesAsync();
Executar o aplicativo
dotnet run
Próximas etapas
- Siga o Tutorial do ASP.NET Core para usar o EF Core em um aplicativo Web
- Saiba mais sobre expressões de consulta LINQ
- Configurar seu modelo para especificar itens como otamanho necessário e o tamanho máximo
- Usar migrações para atualizar o esquema de banco de dados depois de alterar seu modelo