Esta página contiene preguntas frecuentes y sus respuestas correspondientes.
Tip
Si no puede encontrar una respuesta a su problema en esta página, consulte la Página deproblemas y ayuda para conocer los próximos pasos y más recursos.
¿Cuál es la diferencia entre el controlador .NET/C# y el proveedor EF Core?
El El controlador MongoDB.NET/C# es una biblioteca que expone la funcionalidad de MongoDB directamente e incluye un proveedor LINQ con proyecciones, operaciones de grupo y mapeo flexible. El controlador incluye características como las siguientes:
Transacciones
Operaciones a granel
Consultas LINQ
Operaciones que modifican directamente la base de datos
Operaciones de agregación
Mapeo personalizado
El proveedor de EF Core le permite usar Entity Framework Core de Microsoft con MongoDB en sus aplicaciones .NET/C#. EF Core admite el seguimiento de cambios, las operaciones LINQ basadas en entidades y el modelado habitual para los usuarios de Entity Framework Core. El proveedor incluye características como las siguientes:
Seguimiento inteligente de objetos
Operaciones LINQ basadas en entidades
Modelado y mapeo de Entity Framework con la API fluida
Actualizaciones automáticas de la base de datos a través del seguimiento de cambios
¿Cómo puedo administrar índices con el proveedor EF Core?
Puede crear índices con el proveedor EF Core llamando al HasIndex()
en el OnModelCreating() método de la DbContext clase. Para obtener más información sobre cómo crear índices con el proveedor principal de EF, consulte la guía de índices.
Dado que el proveedor EF Core está construido sobre el driver .NET/C#, también puede gestionar índices en la aplicación utilizando directamente el driver .NET/C#. Para utilizar métodos de driver en la aplicación de proveedor EF Core, llámelos en el MongoClient utilizado para configurar su DbContext.
El siguiente ejemplo crea índices en la colección movies mediante métodos del controlador .NET/C#:
using MongoDB.Driver; var client = new MongoClient("<connection string>"); var database = client.GetDatabase("sample_mflix"); await CreateIndexesAsync(database); async Task CreateIndexesAsync(IMongoDatabase database) { var moviesIndex = new CreateIndexModel<Movie>(Builders<Movie>.IndexKeys .Ascending(x => x.Title) .Ascending(x => x.Genres)); await database.GetCollection<Movie>("movies") .Indexes.CreateOneAsync(moviesIndex); }
Para aprender más sobre la creación de índices usando el driver, consulta la Guía de índices en la documentación del controlador MongoDB .NET/C#.
¿Puedo acceder a las características del controlador .NET/C# en el proveedor EF Core?
Puede usar el controlador .NET/C# directamente en su aplicación EF Core Provider llamando a los métodos del controlador en el MongoClient usado para configurar su DbContext. EF Core Provider se basa en el controlador .NET/C#, por lo que puede usar todas sus funciones en su aplicación. Por ejemplo, puede usar el controlador para realizar una consulta de búsqueda Atlas, como se muestra en el siguiente ejemplo:
// Client used to set up your DbContext var client = new MongoClient("<connection string>"); var clientDB = client.GetDatabase("sample_guides"); var collection = clientDB.GetCollection<Planet>("planets"); var searchResult = collection.Aggregate() .Search(Builders<Planet>.Search.Equals(p => p.hasRings, true)) .ToList(); foreach (var p in searchResult) { Console.WriteLine(p.name); }
Para obtener más información sobre cómo realizar consultas de búsqueda de Atlas con el controlador .NET/C#, consulte la guía de búsqueda de Atlas en la documentación del controlador.