Skip to content

Instantly share code, notes, and snippets.

@robsonfaxas
Last active April 24, 2020 16:50
Show Gist options
  • Save robsonfaxas/6ba577de8db7525f37678b4e183b03a3 to your computer and use it in GitHub Desktop.
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
// 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