Utilizando MongoDb com EntityFramework Core(.NET 8+)
Para utilizarmos o mongoDb em aplicações .NET, até então, utilizávamos o pacote nuget MongoDbDriver e a conexão era estabelecida, e manipulávamos através do MongoClient e das Collections.
Em meados deste ano (2024), foi lançada uma biblioteca oficial do MongoDb para ser utilizado com EFCore, disponível para versões do .NET 8+.
A configuração é bem simples, vamos aos seguintes passos:
1) Adicionar o pacote MongoDB.EntityFrameworkCore
dotnet add package MongoDB.EntityFrameworkCore
2) Configurar nosso DbContext:
using Microsoft.EntityFrameworkCore;
using MongoDB.EntityFrameworkCore.Extensions;
public class ApplicationDbContext : DbContext
{
public DbSet<Payment> Payments { get; init; }
public ApplicationDbContext(DbContextOptions options): base(options) {}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Payment>().ToCollection("payments");
}
}
3) Por fim, configurar nossa class Program.cs:
builder.Services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseMongoDB(
"mongodb://localhost:27017", // sua connectionString do mongo
"myApp" // nome da base de dados
);
});
Somente com isto, o mongoDb já está configurado para ser utilizado com o EntityFrameworkCore.
Exemplo de uso:
var payments = await dbContext.Payments.Where(p => !p.Vencido).ToListAsync();
Observação: é importante ler a documentação oficial, pois algumas features do linq ainda podem não funcionar.