文档菜单
文档首页
/ / /
EF Core 提供器

快速入门

本页内容

  • 创建 MongoDB 集群
  • 在 Atlas 中设置免费层集群
  • 更新占位符
  • 将您的连接字符串添加到环境变量
  • 设置您的项目
  • 创建项目
  • 将 EF Core 提供器作为依赖项添加
  • 从您的应用程序查询 MongoDB 集群
  • 添加示例代码
  • 查询示例数据
  • 下一步操作

本指南向您展示如何创建一个使用 EF Core 提供程序连接到 MongoDB Atlas 集群 的 .NET 应用程序。如果您希望使用其他编程语言连接到 MongoDB,请参阅我们的官方 MongoDB 驱动程序列表.

EF Core 提供程序通过将数据映射到 .NET 对象,简化了在 MongoDB 集群上的操作。

MongoDB Atlas 是一种全面管理的云数据库服务,可在 MongoDB 集群上托管您的数据。在本指南中,我们向您展示如何开始使用您自己的免费(无需信用卡)集群。

按照以下步骤连接您的 EF Core 提供程序应用程序到 MongoDB Atlas 集群。

1

要设置适用于此快速入门的 Atlas 免费集群,请完成 MongoDB Atlas 设置 指南。

完成 Atlas 指南中的步骤后,您在 Atlas 中部署了一个新的 MongoDB 集群,一个新数据库用户,并将样本数据集加载到您的集群中。您还有一个类似于以下内容的连接字符串在您的剪贴板中

"mongodb+srv://<username>:<password>@cluster0.abc.mongodb.net/?retryWrites=true&w=majority"
2

将连接字符串复制到您的剪切板中,然后在您喜欢的文本编辑器中的文件中粘贴。替换<username><password>占位符,使用您的数据库用户的用户名和密码。

将此文件保存在安全的位置,以便在下一步中使用。

3

在您的shell中运行以下代码,将之前步骤中的MongoDB连接字符串从剪切板保存到环境变量中。将您的连接字符串存储在环境变量中可以将您的凭据与源代码分开。这种分离减少了在共享代码时泄露凭据的可能性。

export MONGODB_URI='<your connection string>'

重要

请确保将连接字符串中的<username><password>部分替换为您的数据库用户的用户名和密码。

1

创建一个新的目录,并使用 dotnet new 命令初始化项目,如下所示

mkdir entity-quickstart
cd entity-quickstart
dotnet new console
2

使用 dotnet add 命令将 EF Core 提供程序添加到您的项目中作为依赖项。

dotnet add package MongoDB.EntityFrameworkCore
1

打开项目根目录下名为 Program.cs 的文件。将以下示例代码复制到 Program.cs

using Microsoft.EntityFrameworkCore;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
using MongoDB.EntityFrameworkCore.Extensions;
var connectionString = Environment.GetEnvironmentVariable("MONGODB_URI");
if (connectionString == null)
{
Console.WriteLine("You must set your 'MONGODB_URI' environment variable. To learn how to set it, see https://mongodb.ac.cn/docs/drivers/csharp/current/quick-start/#set-your-connection-string");
Environment.Exit(0);
}
var client = new MongoClient(connectionString);
var db = MflixDbContext.Create(client.GetDatabase("sample_mflix"));
var movie = db.Movies.First(m => m.Title == "Back to the Future");
Console.WriteLine(movie.Plot);
public class MflixDbContext : DbContext
{
public DbSet<Movie> Movies { get; init; }
public static MflixDbContext Create(IMongoDatabase database) =>
new(new DbContextOptionsBuilder<MflixDbContext>()
.UseMongoDB(database.Client, database.DatabaseNamespace.DatabaseName)
.Options);
public MflixDbContext(DbContextOptions options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Movie>().ToCollection("movies");
}
}
public class Movie
{
[BsonId]
public ObjectId _id { get; set; }
[BsonElement("title")]
public string Title { get; set; }
[BsonElement("rated")]
public string Rated { get; set; }
[BsonElement("plot")]
public string Plot { get; set; }
}
2

在您的shell中运行以下命令。它应该会打印出从示例数据集中电影“回到未来”的图表

dotnet run entity-quickstart.csproj
A young man is accidentally sent 30 years into the past in a time-traveling
DeLorean invented by his friend, Dr. Emmett Brown, and must make sure his
high-school-age parents unite in order to save his own existence.

提示

如果您的输出为空,请确保您已将示例数据集加载到您的集群中。

完成这些步骤后,您应该拥有一个可工作的Entity Framework应用程序,该应用程序连接到您的MongoDB集群,在示例数据上运行查询,并打印出结果。

学习如何使用EF Core Provider在快速参考中执行常见操作。

返回

MongoDB 实体框架核心提供程序