Docs 菜单
Docs 主页
/ /

FAQ

本页包含常见问题及其相应解答。

提示

如果在此页面上找不到问题的回答,请参阅问题和帮助页面,了解后续步骤和更多资源。

MongoDB .NET/ C#驱动程序是一个直接公开MongoDB功能的库,并包括具有投影、群组操作和灵活映射功能的 LINQ提供商。 该驾驶员包含以下功能:

  • 事务

  • 批量操作

  • LINQ 查询

  • 直接修改数据库的操作

  • 聚合操作

  • 自定义映射

EF Core 提供程序允许您在.NET/ C#应用程序中将 Microsoft 的 Entity Framework Core 与MongoDB结合使用。 EF Core 提供程序支持变更跟踪、基于实体的 LINQ 操作以及 Entity Framework Core 用户熟悉的建模。 该提供商包括以下功能:

  • 智能对象跟踪

  • 基于实体的 LINQ 操作

  • 使用 Fluent API进行实体框架建模和映射

  • 通过变更跟踪自动更新数据库

您可以通过调用 DbContext 类的 OnModelCreating() 方法中的 HasIndex() 方法,使用 EF Core 提供程序创建索引。要详细学习;了解如何使用 EF Core 提供程序创建索引,请参阅 索引 指南。

由于 EF Core 提供程序构建在.NET/ C#驱动程序之上,因此您还可以直接使用.NET/ C#驱动程序来管理应用程序中的索引。要在 EF Core 提供程序应用程序中使用驾驶员方法,请在用于设立DbContextMongoClient 上调用这些方法。

以下示例使用.NET/ C#驱动程序方法在 movies集合上创建索引:

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

要学习;了解有关使用驾驶员创建索引的更多信息,请参阅MongoDB .NET/ C#驱动程序文档中的索引指南

您可以在用于设立DbContextMongoClient 上调用驾驶员方法,从而直接在 EF Core 提供程序应用程序中使用.NET/ C#驱动程序。EF Core 提供程序构建在.NET/ C#驱动程序之上,因此您可以在应用程序中使用所有驾驶员功能。示例,您可以使用驾驶员执行Atlas Search查询,如以下示例所示:

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

要学习;了解有关使用.NET/ C#驱动程序执行Atlas Search查询的更多信息,请参阅驾驶员文档中的Atlas Search指南

后退

问题与帮助

在此页面上