Article image

WJ

Wellington Júnior18/09/2024 15:42
Compartilhe

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.

    Mais detalhes na documentação oficial.

    Compartilhe
    Comentários (0)