Como criar uma API com EntityFramework e SQL Server
Published: 2024-03-09 01:38:54

Neste artigo irei mostrar como criar uma API simples utilizando EntityFramework com SQL server.

### Preparando o ambiente
Vamos começar criando o projeto. Primeira coisa a ser feita é criar um projeto do tipo ASP.NET Core Web API.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lluzrsqt3v38as2ml1le.png)

Com o projeto criado a gente já pode testar com o Swagger uma das rotas padrões.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dw7oxb0s75knff7zapxo.png)

Pra esse tutorial a gente já vai fazer uma coisa mais "next level". Vamos dividir as nossas camadas de dados em API, DAL, BLL e Entity. Com isso vamos adicionar esses 3 projetos com o tipo Class.Library.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mnhldcoc7faxm69e8ma3.png)

#### Instalando dependências
Agora é hora de utilizarmos o Nuget para adicionar alguns pacotes ao nosso projeto de DAL e API(futuramente os outros projetos também podem precisar desses pacotes). Tools > Nuget package manager > Manage package nuget for solution.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nm94vsne5ubt4nwe8val.png)

Ao tentar instalar, será solicitado outros pacotes, ai é só aceitar tudo.

### Estruturando o projeto com classes

Agora que já temos nossas dependências instaladas, vamos criar uma classe na DAL que irá herdar o DbContext e fazer as ações necessárias.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w4ifb86p9daws0qungsh.png)


Você vai notar que já tem algumas configurações do modelbuilder, mas eu estou basicamente informando quais vão ser os campos da minha tabela. De resto é tudo igual. Inclusive, essa é a minha classe Pessoa que foi criada no projeto de Entity.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8i2d2jhhsh1wxt0v1rru.png)

### Criando a conexão

No arquivo appSettings.json do projeto Asp.Net insera a string de conexão que leverá o nosso banco

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9m8ymou6si1onw20otjz.png)


`"StringConnection" : "server=(local)\\SQL2019;database=vrsolicitacoes;integrated security=true;trustservercertificate=true"`

Logo após isso, iremos até o Program.cs informar que utilizaremos esse caminho para usar o SqlServer.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyo00eqjflebhxspexnp.png)

### Migrations

Agora vamos criar o nosso banco utilizando migration. Lá no Package Manager Console digite:

Add-Migration "Nome da migration aqui"

Depois disso é só rodar o seguinte comando
`
Update-Database`

#### Nota
Se der o erro apresentado abaixo, basta trocar o projeto target para aquele que estiver com a classe que herda do dbContext.

> Your target project '' doesn't match your migrations assembly 'DAL'. Either change your target project or change your migrations assembly.
> Change your migrations assembly by using DbContextOptionsBuilder. E.g. options.UseSqlServer(connection, b => b.MigrationsAssembly("ApiVrSolicitacoes")). By default, the migrations assembly is the assembly containing the DbContext.
> Change your target project to the migrations project by using the Package Manager Console's Default project drop-down list, or by executing "dotnet ef" from the directory containing the migrations project.