Menu Docs
Página inicial do Docs
/ / /
Provedor do EF Core
/

Configurar o provedor do EF Core

Nesta página

  • Crie um POCO
  • Crie uma classe de contexto de banco de dados
  • Usar MongoDB
  • Exemplo

Neste guia, você aprenderá como configurar um aplicação para usar o Fornecedor do MongoDB Entity Framework Core. Para saber como configurar um novo projeto e instalar o fornecedor de núcleo EF, consulte oInício Rápidodo .

Crie um objeto simples e antigo de classe , ou POCO, para usar como modelo para sua entidade. Um POCO é um objeto de classe simples que não herda recursos de nenhuma classe de base ou interface específica da framework.

O seguinte exemplo de código mostra como criar um POCO que representa um cliente:

public class Customer
{
public ObjectId Id { get; set; }
public String Name { get; set; }
public String Order { get; set; }
}

Dica

Para saber mais sobre POCOs, consulte o guia POCO na documentação do driver .NET/C#.

Para começar a usar o Entity Framework Core, crie uma classe de contexto que deriva do DBContext. A instância da classe derivada do DbContext representa uma sessão do banco de dados de dados e é utilizada para consultar e salvar instâncias de suas entidades.

A classe DBContext expõe propriedades do DBSet que especificam as entidades com as quais você pode interagir ao utilizar este contexto.

O exemplo seguinte cria uma instância de uma classe derivada do DBContext e especifica o objeto Customer como uma propriedade DBSet :

public class MyDbContext : DbContext
{
public DbSet<Customer> Customers { get; init; }
public MyDbContext(DbContextOptions options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Customer>().ToCollection("customers");
}
}

O exemplo de código anterior substitui o método OnModelCreating() . Substituir o método OnModelCreating() permite a você especificar detalhes de configuração para seu modelo e suas propriedades. Este exemplo utiliza o método ToCollection() para especificar que as entidades do Customer na sua aplicação mapeiam para a collection do customers no MongoDB.

Após criar uma classe DBContext , construa um objeto DbContextOptionsBuilder e chame seu método UseMongoDB() . Este método utiliza dois parâmetros: uma instância do MongoClient e o nome do reconhecimento de data center que armazena as collection com as quais você está trabalhando.

O método UseMongoDB() retorna um objeto DbContextOptions . Passe a propriedade Options deste objeto para o construtor de sua classe DBContext .

O exemplo a seguir mostra como construir um objeto DBContext desta forma:

var mongoClient = new MongoClient("<Your MongoDB Connection URI>");
var dbContextOptions =
new DbContextOptionsBuilder<MyDbContext>().UseMongoDB(mongoClient, "<Database Name");
var db = new MyDbContext(dbContextOptions.Options);

Dica

Criando um MongoClient

Você pode chamar métodos do MongoDB .NET/C# Driver ao usar o EF Core Provider. O exemplo anterior usa o método MongoClient() do driver .NET /C# para criar um cliente MongoDB que se conecta a uma instância do MongoDB .

Para saber mais sobre como usar o driver .NET/C# do MongoDB para se conectar ao MongoDB, consulte o guia de conexão na documentação do driver .NET/C#.

O seguinte exemplo de código mostra como configurar o EF Core Provider e inserir um documento no banco de banco de dados:

using Microsoft.EntityFrameworkCore;
using MongoDB.Bson;
using MongoDB.Driver;
using Microsoft.Extensions.Configuration;
using MongoDB.EntityFrameworkCore.Extensions;
var mongoClient = new MongoClient("<Your MongoDB Connection URI>");
var dbContextOptions =
new DbContextOptionsBuilder<MyDbContext>().UseMongoDB(mongoClient, "<Database Name>");
var db = new MyDbContext(dbContextOptions.Options);
// Add a new customer and save it to the database
db.Customers.Add(new Customer() { name = "John Doe", Order = "1 Green Tea" });
db.SaveChanges();
public class Customer
{
public ObjectId Id { get; set; }
public String Name { get; set; }
public String Order { get; set; }
}
public class MyDbContext : DbContext
{
public DbSet<Customer> Customers { get; init; }
public MyDbContext(DbContextOptions options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Customer>().ToCollection("customers");
}
}

Voltar

Fundamentals