Docs Menu
Docs Home
/ /
/ / /

Configurar el proveedor de EF Core

En esta guía, aprenderá a configurar una aplicación para usar el proveedor principal de MongoDB Entity Framework. Para aprender a configurar un nuevo proyecto e instalar el proveedor principal de EF, consulte Inicio rápido.

Crear una Objeto CLR/Clase simple, o POCO, para usar como modelo para su entidad. Un POCO es un objeto de clase simple que no hereda características de ninguna clase base ni interfaz específica del framework.

El siguiente ejemplo de código muestra cómo crear un POCO que representa a un cliente:

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

Tip

Para obtener más información sobre POCO, consulte la guía de POCO en la documentación del controlador .NET/C#.

Para comenzar a utilizar Entity Framework Core, cree una clase de contexto que derive de DBContext. DbContext La instancia de clase derivada representa una sesión de base de datos y se utiliza para consultar y guardar instancias de sus entidades.

La clase DBContext expone propiedades DBSet que especifican las entidades con las que puedes interactuar mientras usas ese contexto.

El siguiente ejemplo crea una instancia de una clase derivada DBContext y especifica el objeto Customer como una propiedad 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");
}
}

El ejemplo de código anterior anula el método OnModelCreating(). Anular el método OnModelCreating() permite especificar detalles de configuración para el modelo y sus propiedades. Este ejemplo utiliza el método ToCollection() para especificar que las entidades Customer de la aplicación se asignen a la colección customers de MongoDB.

Una vez creada la clase DBContext, construye un objeto DbContextOptionsBuilder y llama a su método UseMongoDB(). Este método acepta dos parámetros: una instancia MongoClient y el nombre de la base de datos que almacena las colecciones con las que trabajas.

El método UseMongoDB() devuelve un objeto DbContextOptions. Pase la propiedad Options de este objeto al constructor de la clase DBContext.

El siguiente ejemplo muestra cómo construir un objeto DBContext de esta manera:

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

Tip

Creando un MongoClient

Puede llamar a métodos del controlador MongoDB .NET/C# al usar el proveedor de EF Core. El ejemplo anterior utiliza el método MongoClient() del controlador .NET/C# para crear un cliente MongoDB que se conecta a una instancia de MongoDB.

Para obtener más información sobre el uso del controlador MongoDB.NET/C# para conectarse a MongoDB, consulte la guía de Conexión en la documentación del controlador .NET/C#.

El siguiente ejemplo de código muestra cómo configurar el proveedor EF Core e insertar un documento en la base de datos:

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");
}
}

Volver

Fundamentals

En esta página