Introdução ao EF CoreGetting Started with EF Core

Neste tutorial, você criará um aplicativo de console do .NET Core que executa acesso a dados em um banco de dados SQLite usando o Entity Framework Core.In this tutorial, you create a .NET Core console app that performs data access against a SQLite database using Entity Framework Core.

Você pode seguir o tutorial usando o Visual Studio no Windows ou usando a CLI do .NET Core no Windows, macOS ou Linux.You can follow the tutorial by using Visual Studio on Windows, or by using the .NET Core CLI on Windows, macOS, or Linux.

Exiba o exemplo deste artigo no GitHub.View this article's sample on GitHub.

Pré-requisitosPrerequisites

Instale o software a seguir:Install the following software:

Criar um novo projetoCreate a new project

dotnet new console -o EFGetStarted
cd EFGetStarted

Instalar o Entity Framework CoreInstall Entity Framework Core

Para instalar o EF Core, instale o pacote dos provedores do banco de dados do EF Core para o qual você deseja direcionar.To install EF Core, you install the package for the EF Core database provider(s) you want to target. Este tutorial usa SQLite porque ele é executado em todas as plataformas que dão suporte a .NET Core.This tutorial uses SQLite because it runs on all platforms that .NET Core supports. Para obter uma lista de provedores disponíveis, veja Provedores de Banco de Dados.For a list of available providers, see Database Providers.

dotnet add package Microsoft.EntityFrameworkCore.Sqlite

Criar o modeloCreate the model

Defina uma classe de contexto e classes de entidade que compõem o modelo.Define a context class and entity classes that make up the model.

  • No diretório do projeto, crie Model.cs com o seguinte códigoIn the project directory, create Model.cs with the following code
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

namespace EFGetStarted
{
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder options)
            => options.UseSqlite("Data Source=blogging.db");
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public List<Post> Posts { get; } = new List<Post>();
    }

    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 a engenharia reversa de um modelo de um banco de dados existente.EF Core can also reverse engineer a model from an existing database.

Dica: em um aplicativo real, você coloca cada classe em um arquivo separado e coloca a cadeia de conexão em um arquivo de configuração ou na variável de ambiente.Tip: In a real app, you put each class in a separate file and put the connection string in a configuration file or environment variable. Para simplificar o tutorial, tudo está contido em um arquivo.To keep the tutorial simple, everything is contained in one file.

Criar o banco de dadosCreate the database

As etapas a seguir usam migrações para criar um banco de dados.The following steps use migrations to create a database.

  • Execute os seguintes comandos:Run the following commands:

    dotnet tool install --global dotnet-ef
    dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet ef migrations add InitialCreate
    dotnet ef database update
    

    Isso instala o dotnet ef e o pacote de design necessário para executar o comando em um projeto.This installs dotnet ef and the design package which is required to run the command on a project. O comando migrations realiza o scaffolding de uma migração e cria o conjunto inicial de tabelas para o modelo.The migrations command scaffolds a migration to create the initial set of tables for the model. O comando database update cria o banco de dados e aplica a nova migração a ele.The database update command creates the database and applies the new migration to it.

Criar, ler, atualizar e excluirCreate, read, update & delete

  • Abra Program.cs e substitua o conteúdo pelo código a seguir:Open Program.cs and replace the contents with the following code:

    using System;
    using System.Linq;
    
    namespace EFGetStarted
    {
        class Program
        {
            static void Main()
            {
                using (var db = new BloggingContext())
                {
                    // Create
                    Console.WriteLine("Inserting a new blog");
                    db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
                    db.SaveChanges();
    
                    // Read
                    Console.WriteLine("Querying for a blog");
                    var blog = db.Blogs
                        .OrderBy(b => b.BlogId)
                        .First();
    
                    // 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!"
                        });
                    db.SaveChanges();
    
                    // Delete
                    Console.WriteLine("Delete the blog");
                    db.Remove(blog);
                    db.SaveChanges();
                }
            }
        }
    }
    

Executar o aplicativoRun the app

dotnet run

Próximas etapasNext steps