MongoDB com EF Core
Ricardo Peres @ Porto.DATA #96
28/08/2024
Agenda
O QUE É
MONGODB E EF
CORE
01
VANTAGENS E
DESVANTAGENS
02
DEMONSTRAÇÃO
03
O que é MongoDB
 Base de dados não relacional (NoSQL), orientada a documentos, baseada em
JSON/BSON
 Elevada performance e escalabilidade
 Suporte a transações distribuídas
 Instalações na cloud ou on-premises
 Mapeamentos para várias linguagens de programação
28-08-2024
O que é EF Core
 Moderno Object-Relational Mapper (ORM) da Microsoft
 Baseado em providers, um por cada base de dados (SQL Server, Oracle, MySQL,
PostgreSQL)
 Inicialmente, apenas suportava base de dados relacionais, agora suporta também
bases de dados NoSQL (CosmosDB, MongoDB)
 Utiliza LINQ ou SQL para efectuar queries
 Rico conjunto de funcionalidades
28-08-2024
MongoDB com EF Core
 Recentemente (2024) a MongoDB disponibilizou o seu provider open-source para EF
Core 8 e .NET 8
 Usa o driver MongoDB para .NET
 Permite usar o EF Core de forma quase agnóstica em relação ao provider
28-08-2024
Vantagens
APIs bem conhecidos
EF Core
LINQ
Infraestrutura do EF Core
Mapeamento POCO-collection
Providers
Interceptors
Eventos
Global Query Filters
Value Converters
Change Tracking
Optimistic Concurrency
Open-Source
Código disponível no GitHub
Tracking de issues
Releases frequentes
28-08-2024
Limitações
MongoDB
Time Series
Atlas Search
Vector Search
EF Core
Projeções
Herança de Tabelas
Agregações Escalares/Group By
(MAX, COUNT, ANY, SUM, AVG)
Transações (exceto distribuídas)
Relações (one to one, one to many,
many to one, many to many)
Shadow Properties
Bulk Updates/Deletes
Lazy Loading
Keyless Entities
Migrations
Table Splitting
Entity Splitting
Spacial Data
Temporal Tables
28-08-2024
Demonstração
28-08-2024
Referências
 https://www.mongodb.com/docs/entity-framework/current
 https://devblogs.microsoft.com/dotnet/efcore-mongodb
 https://github.com/mongodb/mongo-efcore-provider/tree/main
 https://github.com/mongodb/mongo-csharp-driver
 https://www.nuget.org/packages/MongoDB.EntityFrameworkCore
 https://www.mongodb.com/lp/cloud/atlas/try4
28-08-2024
Obrigado!
https://weblogs.asp.net/ricardoperes
rjperes@hotmail.com
@rjperes75
28-08-2024

MongoDB com EF Core - Porto.DATA #96 28/08/2024

  • 1.
    MongoDB com EFCore Ricardo Peres @ Porto.DATA #96 28/08/2024
  • 2.
    Agenda O QUE É MONGODBE EF CORE 01 VANTAGENS E DESVANTAGENS 02 DEMONSTRAÇÃO 03
  • 3.
    O que éMongoDB  Base de dados não relacional (NoSQL), orientada a documentos, baseada em JSON/BSON  Elevada performance e escalabilidade  Suporte a transações distribuídas  Instalações na cloud ou on-premises  Mapeamentos para várias linguagens de programação 28-08-2024
  • 4.
    O que éEF Core  Moderno Object-Relational Mapper (ORM) da Microsoft  Baseado em providers, um por cada base de dados (SQL Server, Oracle, MySQL, PostgreSQL)  Inicialmente, apenas suportava base de dados relacionais, agora suporta também bases de dados NoSQL (CosmosDB, MongoDB)  Utiliza LINQ ou SQL para efectuar queries  Rico conjunto de funcionalidades 28-08-2024
  • 5.
    MongoDB com EFCore  Recentemente (2024) a MongoDB disponibilizou o seu provider open-source para EF Core 8 e .NET 8  Usa o driver MongoDB para .NET  Permite usar o EF Core de forma quase agnóstica em relação ao provider 28-08-2024
  • 6.
    Vantagens APIs bem conhecidos EFCore LINQ Infraestrutura do EF Core Mapeamento POCO-collection Providers Interceptors Eventos Global Query Filters Value Converters Change Tracking Optimistic Concurrency Open-Source Código disponível no GitHub Tracking de issues Releases frequentes 28-08-2024
  • 7.
    Limitações MongoDB Time Series Atlas Search VectorSearch EF Core Projeções Herança de Tabelas Agregações Escalares/Group By (MAX, COUNT, ANY, SUM, AVG) Transações (exceto distribuídas) Relações (one to one, one to many, many to one, many to many) Shadow Properties Bulk Updates/Deletes Lazy Loading Keyless Entities Migrations Table Splitting Entity Splitting Spacial Data Temporal Tables 28-08-2024
  • 8.
  • 9.
    Referências  https://www.mongodb.com/docs/entity-framework/current  https://devblogs.microsoft.com/dotnet/efcore-mongodb https://github.com/mongodb/mongo-efcore-provider/tree/main  https://github.com/mongodb/mongo-csharp-driver  https://www.nuget.org/packages/MongoDB.EntityFrameworkCore  https://www.mongodb.com/lp/cloud/atlas/try4 28-08-2024
  • 10.