Utilizando OData com Entity Framework Core 3.1

Renicius Pagotto Fostaini
2 min readMar 26, 2020

--

Vamos iniciar a segunda parte da série de OData e para aqueles que não leram, clique aqui para ver o primeiro artigo da série.

Primeiro, vamos criar um projeto WEB API, conforme exemplos abaixo:

Com nosso projeto criado, vamos adicionar alguns pacote nuget, seguindo as instruções abaixo:

  • Install-Package Microsoft.AspNetCore.OData -Version 7.3.0
  • Install-Package Microsoft.EntityFrameworkCore -Version 3.1.1
  • Install-Package Microsoft.EntityFrameworkCore.Relational -Version 3.1.1
  • Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 3.1.1
  • Install-Package Microsoft.EntityFrameworkCore.Tools -Version 3.1.1

Após concluir a adição de todos os pacotes, vamos adicionar a classe “Customer” que será nossa entidade de domínio

Agora é a vez de criar nossa classe de mapeamento das entidades para o banco de dados. Essa classe será chamada de “CustomerMap” e será responsável por mapear nosso modelo de domínio.

E vamos criar o nosso DataContext que será responsavel pelo nosso contexto de acesso a base de dados

Devemos agora implementar a controller da nossa aplicação que será responsável por criar e obter os clientes

Em nosso método “Save” temos a lógica de salvar um cliente em nossa base de dados, enquanto o “Get” é responsável por executar a consulta em nossa base de dados.

Note que dessa vez, herdamos um ODataController que é responsável por habilitar as funcionalidades OData para nosso método Get e possuímos uma nova implementação que é AsQueryable(), essa responsável por traduzir nossa expressão OData em comandos que são entendidos pelo Entity Framework Core.

Na classe Startup.cs, vamos implementar o seguinte código:

Agora é o momento de criarmos as migrations do Entity Framework Core para mapear nossa entidade de dominio em tabela no banco de dados. Para isso, vamos executar os seguintes comandos no Package Manager Console:

  • Add-Migration odata-v1
  • Update-Database

Com as migrations executadas basta rodar a aplicação, alimentar a base com informações e começar a utilizar os filtros que o OData oferece e que estão listados no primeiro artigo dessa série.

Ficou com dúvida? Deixe nos comentários

Até mais!

Link do projeto: https://github.com/reniciuspagotto/ODataWithEntityFrameworkCore

Referências

--

--

Renicius Pagotto Fostaini
Renicius Pagotto Fostaini

Written by Renicius Pagotto Fostaini

Solutions Architect | Speaker | Community Manager

No responses yet