Esta página contém perguntas frequentes e suas respostas correspondentes.
Dica
Se você não conseguir encontrar uma resposta para seu problema nesta página, consulte a página Problemas e ajuda para ver as próximas etapas e mais recursos.
Qual é a diferença entre o driver .NET/C# e o provedor do EF Core?
O MongoDB .NET/C# Driver é uma biblioteca que expõe a funcionalidade do MongoDB diretamente e inclui um provedor LINQ com projeções, operações de grupo e mapeamento flexível. O driver inclui recursos como os seguintes:
Transações
Operações em massa
Queries LINQ
Operações que modificam diretamente o banco de dados de dados
Operações de agregação
Mapeamento personalizado
O fornecedor EF Core permite que você use o Entity Framework Core da Microsoft com o MongoDB em seus aplicativos .NET/C#. O provedor do EF Core oferece suporte ao rastreamento de alterações, operações LINQ baseadas em entidade e modelagem familiares aos usuários do Entity Framework Core. O fornecedor inclui funcionalidades como as seguintes:
Rastreamento inteligente de objeto
Operações LINQ baseadas em entidade
Modelagem e mapeamento do Entity Framework com a API fluente
Atualizações automáticas do banco de dados de dados por meio do acompanhamento de alterações
Como posso gerenciar índices com o provedor de EF Core?
Você pode criar índices com o provedor do EF Core chamando o método HasIndex() no método OnModelCreating() da sua classe DbContext. Para saber mais sobre como criar índices com o EF Core Provider, consulte o guia Índices.
Como o EF Core Provider é baseado no Driver .NET/C#, você também pode gerenciar índices em seu aplicação usando o Driver .NET/C# diretamente. Para usar métodos de driver em seu aplicação EF Core Provider, chame-os no MongoClient usado para configurar seu DbContext.
O exemplo a seguir cria índices na coleção movies usando os métodos do driver .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 saber mais sobre como criar índices usando o driver, consulte o guia Índices na documentação do MongoDB .NET/C# Driver.
Posso acessar os recursos do driver .NET/C# no provedor do EF Core?
Você pode usar o driver .NET/C# diretamente em seu aplicação EF Core Provider chamando os métodos de driver no MongoClient usado para configurar seu DbContext. O EF Core Provider é criado sobre o driver .NET/C#, para que você possa usar todos os recursos do driver em seu aplicação. Por exemplo, você pode usar o driver para executar uma query do Atlas Search , conforme mostrado no exemplo a seguir :
// 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 saber mais sobre como executar queries do Atlas Search com o driver .NET/C#, consulte o guia do Atlas Search na documentação do driver.