EF Core -  Projeto ASP .NET Core Code First


Hoje temos um tutorial para criação de um projeto ASP .NET Core usando o EF Core usando a abordagem Code First.

Este projeto é usado como um projeto suporte para os exemplo que usam os recursos do EF Core.

Os recursos usados para criar o projeto são:

Criando o projeto inicial no VS 2019

Abra o VS 2019 Community e crie um novo projeto via menu File-> New Project;

Selecione o template ASP .NET Core Web Application, e, Informe o nome da solução AspNet_EFCoreAPi (ou outro nome a seu gosto) e o nome do projeto AlunosWeb.

A seguir selecione .NET Core e ASP .NET Core 3.1 e marque o template API e as configurações conforme figura abaixo:

Podemos remover o arquivo WeatherForecast.cs do projeto e o controlador da pasta Controllers pois não vamos usá-los.

A seguir inclua os seguinte pacotes no seu projeto:

  1. Microsoft.EntityFrameworkCore.SqlServer  - Usar o provedor do banco de dados SQL Server

  2. Microsoft.EntityFrameworkCore.Tools    - Permite realizar o Migrations

Nota:  Para instalar abra uma janela do Package Manager Console e use o comando : Install-Package <nome>

Esses pacotes são necessários para realizarmos o acesso ao banco de dados SQL Server e aplicarmos o Migrations ao modelo de domínio e assim gerar o banco de dados e as tabelas.

Definindo o modelo de domínio

Crie uma pasta Models e nesta pasta crie a classe Aluno que representa a nossa entidade de domínio:

    using System;

    public class Aluno
    {
        public Guid Id { get; set; }
        public string Nome { get; set; }
        public int? Idade { get; set; }
        public bool Ativo { get; set; }
   }

Criando o contexto e registrando como um serviço

Agora na mesma pasta Models crie o arquivo AppDbContext:

using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
        public AppDbContext(DbContextOptions<AppDbContext> options)
       : base(options)
        { }

        public DbSet<Aluno> Alunos { get; set; }

}

No método ConfigureServices do arquivo Startup registre o serviço do contexto:
...
  public void ConfigureServices(IServiceCollection services)
   {
            services.AddDbContext<AppDbContext>(
                 options => options.
                 UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            services.AddControllers();
   }
...
E no arquivo appsettings.json inclua a string de conexão com o banco de dados usando sua instância local:
{
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=Macoratti;Initial Catalog=AlunosDBWeb;Integrated Security=True"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

E pronto. Temos o projeto padrão configurado para usar os recursos do Migrations do EF Core.

Pegue o projeto aqui: AspNetEFCoreProjeto.zip (sem as referências)

Referências:


José Carlos Macoratti