EF Core 6 - Configurando uma aplicação Console
 Veja como configurar aplicações Console para usar o EF Core 6.

O NET 6.0 trouxe muitas novidades e uma delas é a não criação do arquivo Startup nas aplicações que forem criadas a partir dos novos templates de projetos.

Hoje eu vou mostrar como configurar aplicações do tipo Console para usar o EF Core 6 fazendo a configuração no arquivo Program do projeto.

Configurando aplicações Console

As aplicações console já não possuíam o arquivo Startup e assim a configuração e inicialização continuam a serem feitas na classe Program.

No Visual Studio 2022 selecione o template Console Application;

Informe o nome do projeto, vou usar o nome ConsoleEFCore6, e sua localização e clique em Next;

A seguir selecione o NET 6 e clique em Create.

Na janela Solution Explorer teremos apenas o arquivo Program.cs.

Instalando os pacotes do EF Core

Agora temos que instalar os pacotes do EF Core 6.  Veja as opções:

1- Se sua aplicação for acessar uma base de dados existente e vai apenas acessar os dados, basta instalar pacote do EntityFrameworkCore para o banco de dados desejado.

Neste endereço Provedores do EF Core temos os provedores para os bancos de dados que podemos usar.

A seguir exemplos dos mais usados:

Se sua aplicação vai usar a abordagem Code-First e criar o banco e as tabelas ou se você vai realizar a engenharia reversa e gerar o modelo a partir de um banco existente então você vai precisar incluir também os seguintes pacotes:

Em nosso projeto Console vamos instalar os 3 pacotes sendo que vamos acessar um banco de dados SQL Server. Assim as dependências do projeto devem ficar assim:

Para o exemplo deste artigo eu vou acessar a tabela Estudantes no banco de dados CadastroDB no SQL Server Local.

Armazenando a string de conexão

Podemos armazenar a string de conexão em um arquivo json que pode ser criado com o nome appsettings.json no projeto que pode ser definido com o código abaixo:

{
"ConnectionStrings": {
       "DefaultConnection": "Server=meuserver\\SQLEXPRESS;Database=CadastroDB;Integrated Security=True"
  }
}

Nota: Se você estiver usando o .NET 7.0 vai precisar incluir na string de conexão a propriedade TrustServerCertificate=True;

Para obter o nome do servidor você pode acessar o SQL Server Management Studio e clicar sobre o servidor e na janela de propriedades obter o nome do servidor:

Assim defina a string de conexão assim:

Criando o arquivo de contexto

A seguir temos que criar o arquivo de contexto da aplicação que vai herdar da classe DbContext do EF Core. Este arquivo pode ser visto como o coração do EF Core, pois nele definimos as configurações e mapeamento ORM. É através do arquivo de contexto que poderemos realizar comandos e consultas no banco de dados.

Para isso vamos criar o arquivo AppDbContext no projeto e definir o seu código assim:

1- Usando a string de conexão diretamente

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;

namespace ConsoleEFCore6;

public class AppDbContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder builder)
    {
        var connectionString = "Server=meuservidor;Database=CadastroDB;Integrated Security=True";
        builder.UseSqlServer(connectionString);

    }
}

2- Acessando a string de conexão a partir do arquivo appsettings.json :

Aqui vamos precisar incluir dois pacotes no projeto:

  1. Microsoft.Extensions.Configuration;
  2. Microsoft.Extensions.Configuration.Json;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;

namespace ConsoleEFCore6;

public class AppDbContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder builder)
    {
        var configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json")
            .Build();

        var connectionString = configuration.GetConnectionString("DefaultConnection");
        builder.UseSqlServer(connectionString);

    }
}

Agora no arquivo Program basta definir o código abaixo para acessar a tabela Estudantes e exibir seus dados:

using ConsoleEFCore6;

using var db = new AppDbContext();

Console.WriteLine($"{db.Estudantes.Count()} registros no banco de dados ");

Console.WriteLine();
Console.WriteLine("Todos os registros no banco de dados:");

foreach (var estudante in db.Estudantes)
{
    Console.WriteLine($" - {estudante.Nome} - {estudante.Idade} anos");
}

Console.ReadKey();

 

O resultado obtido pode ser visto a seguir:

Pegue o projeto aqui :  ConsoleEFCore6.zip

E estamos conversados.

"Deus tenha misericórdia de nós e nos abençoe; e faça resplandecer o seu rosto sobre nós (Selá.)
Para que se conheça na terra o teu caminho, e entre todas as nações a tua salvação."
Salmos 67:1,2

Referências:


José Carlos Macoratti