Last active
April 24, 2020 16:50
-
-
Save robsonfaxas/6ba577de8db7525f37678b4e183b03a3 to your computer and use it in GitHub Desktop.
[ASP.NET Core TW - Model e Conexao com BD - EFCore] - Model de Projeto Entity Framework Core com Postgres e configuracoes de conexao #DotNetCore
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Criar classe de domínio | |
1 - Criar dentro do folder Models (se existir) a model para o projeto | |
namespace HelloWorldAspNetCore.Models{ | |
public class Pessoa | |
{ | |
public int Id { get; set; } | |
public string Nome { get; set; } | |
public int Idade { get; set; } | |
public string Observacoes { get; set; } | |
} | |
} | |
2 - Colocar a referência da pasta de Models na compilação do nosso .csproj: | |
2.1 - Criar um ItemGroup novo | |
2.2 - Dentro desse ItemGroup, adicionar uma tag Folder, conforme: | |
2.2.1 - <Folder Include="/Models" /> | |
// Criar DbContext | |
using HelloWorldAspNetCore.Models; | |
using Microsoft.EntityFrameworkCore; | |
namespace HelloWorldAspNetCore.Context | |
{ | |
public class HelloWorldAspNetCoreDbContext : DbContext | |
{ | |
public DbSet<Pessoa> Pessoas { get; set; } // DbSet = Tabela em questão | |
public HelloWorldAspNetCoreDbContext(DbContextOptions<HelloWorldAspNetCoreDbContext> opts) : base(opts) // injeção de dependencias para config de dbContext jogada em DbContextOption | |
{ | |
} | |
} | |
} | |
// CONNECTION STRINGS | |
3 - A connection strings fica no arquivo appsettings.json. Pode ser adicionada uma nova configuração, no mesmo nível de Logging, com nome de ConnectionStrings, setando a configuração para o DbContext: | |
"HelloWorldAspNetCoreDbContext":"User ID=azsinistros;Password:linuxx;Host=localhost;Port=5433;Database=treinaweb" | |
// INJEÇÃO DE DEPENDENCIAS | |
4 - Em Startup.cs, método ConfigureServices, é onde são configuradas as injeções de dependência do projeto: | |
public void ConfigureServices(IServiceCollection services) | |
{ | |
services.AddControllersWithViews(); | |
//DbContext | |
string connectionString = Configuration.GetConnectionString("HelloWorldAspNetCoreDbContext"); | |
services.AddDbContext<HelloWorldAspNetCoreDbContext>((optBuilder) => { // Esse OptionBuilder é quem cria o DbContextOptions para injeção de dependência | |
optBuilder.UseNpgsql(connectionString, | |
options => options.SetPostgresVersion(new Version(9, 1))); // aqui seta a versão específica. é opcional, mas as vezes é necessário | |
}); | |
} | |
// Referência para opções existentes no NpgsqlDbContextOptionBuilder | |
https://www.npgsql.org/efcore/api/Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure.NpgsqlDbContextOptionsBuilder.html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment