Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste tutorial, você cria um aplicativo de console .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.
Veja o exemplo deste artigo no GitHub.
Prerequisites
Instale o seguinte software:
- da CLI do .NET
- Estúdio Visual
Criar um novo projeto
- da CLI do .NET
- Estúdio Visual
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 deseja segmentar. Este tutorial usa SQLite porque ele é executado em todas as plataformas suportadas pelo .NET. Para obter uma lista de provedores disponíveis, consulte Provedores de banco de dados.
- da CLI do .NET
- Estúdio Visual
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Criar o modelo
Defina uma classe de contexto e classes de entidade que compõem o modelo.
- da CLI do .NET
- Estúdio Visual
- No diretório do projeto, crie Model.cs com o seguinte código
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 a partir de um banco de dados existente.
Dica: Este aplicativo intencionalmente mantém as coisas simples para clareza. As cadeias de conexão não devem ser armazenadas no código para aplicativos de produção. Você também pode querer dividir cada classe C# em seu próprio arquivo.
Criar a base de dados
As etapas a seguir usam migrações para criar um banco de dados.
- da CLI do .NET
- Estúdio Visual
Execute os seguintes comandos:
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database updateIsso instala dotnet ef e o pacote de design que é necessário para executar o comando em um projeto. O comando
migrationsestrutura uma migração para criar o conjunto inicial de tabelas do 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
- da CLI do .NET
- Estúdio Visual
dotnet run
Próximos passos
- Siga o Tutorial do ASP.NET Core para usar o EF Core em um aplicativo Web
- Saiba mais sobre expressões de consulta LINQ
- Configure seu modelo para especificar coisas como comprimento necessário e máximo
- Usar migrações para atualizar o esquema do banco de dados depois de alterar o modelo