Asp.Net Core + Entity Framework Core + Postgres

Matheus Rizzi
3 min readApr 23, 2020

--

Primeiramente é necessário instalar os seguintes programas:

Não irei entrar em detalhes de como instalar cada um desses softwares, estou partindo do pressuposto que vocês já tenham eles instalados. Portanto vamos botar a mão na massa!

Criando o projeto asp.net web api

Para deixar da maneira mais fácil possível abra o seu prompt de comando, e realize os passos conforme imagem abaixo:

Com o visual studio code aberto siga os passos a seguir para criar um projeto do tipo webapi.

Instalando os pacotes do Entity Framework

Lembrando que o dotnet-ef é necessário senão o migrations não funciona.

Criando o model

Siga os passos abaixo para criar o modelo de usuario, que no caso vai ser nossa entidade a ser criada no banco.

Criando o DbContext

O DbContext é necessário para fazer as configurações do banco e das entidades.

No EF utilizado com Sql Server, essa classe de Context já iria funcionar quando rodasse o migrations, porém com postgres não estava criando a tabela user.

Para resolver este problema foi necessário adicionar o override no método OnModelCreating e mapear a entidade.

Injeção de dependência (DI)

Após as configurações da string de conexão, é necessário resolvermos a dependência do Entity no arquivo startup.cs.

PS: Note que adicionei diretamente a string de conexão, porém você pode e deve, utilizar o appsettings.Development.json, só fiz diretamente aqui para encurtar o tutorial.

TUDO OK! Agora é a hora do Migrations

Neste momento, todas as configurações foram feitas, agora é o momento de rodar o migrations para que nosso banco seja criado e também nossa entidade.

Os comandos são:

  • dotnet ef migrations add InitialCreate
  • dotnet ef database update

Conclusão

No começo parece um pouco complicado, mas as configurações são feitas apenas uma vez, então vale a pena pelo ganho de produtividade.

Se quiserem podem baixar o código fonte do projeto aqui no meu GitHub.

--

--

Matheus Rizzi
0 Followers

Analista de Sistemas FullStack .NET, cursando MBA em Engenharia de Software e Arquitetura de Sistemas. Com stack em .net core, angular, ionic, entre outras.