Docs 菜单
Docs 主页
/ / /
EF Core 提供程序
/

配置 EF Core 提供程序

在此页面上

  • 创建 POCO
  • 创建数据库上下文类
  • 使用 MongoDB
  • 例子

在本指南中,您将学习;了解如何配置应用程序以使用MongoDB实体框架核心提供程序。 要学习;了解如何设立新项目和安装 EF Core 提供程序,请参阅快速入门。

创建一个 普通旧 CLR/类对象 ,或 POCO ,用作实体的模型。POCO 是一个简单的类对象,它不会从任何特定于框架的基类或接口继承功能。

以下代码示例展示了如何创建代表客户的 POCO:

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

提示

要了解有关 POCO 的更多信息,请参阅 .NET/C# 驱动程序文档中的POCO 指南

要开始使用 Entity Framework Core,请创建一个上下文类,该类派生自 DBContext DbContext派生类实例表示数据库会话,用于查询和保存实体的实例。

DBContext类公开DBSet属性,这些属性指定您在使用该上下文时可以与之交互的实体。

以下示例创建了DBContext派生类的实例,并将Customer对象指定为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");
}
}

前面的代码示例覆盖了OnModelCreating()方法。 通过重写OnModelCreating()方法,您可以指定模型及其属性的配置详细信息。 此示例使用ToCollection() Customer方法指定应用程序中的 实体映射到customers MongoDB 中的collection集合。

创建DBContext类后,构造一个DbContextOptionsBuilder对象并调用其UseMongoDB()方法。 MongoClient此方法接受两个参数:一个实例和存储您正在使用的collection的数据库的名称。

UseMongoDB()方法返回一个DbContextOptions对象。 将此对象的Options属性传递给DBContext类的构造函数。

以下示例展示了如何以这种方式构造DBContext对象:

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

提示

创建 MongoClient

使用 EF Core 提供程序时,您可以从MongoDB .NET/ C#驱动程序调用方法。 上一个示例使用.NET/ C#驱动程序中的MongoClient()方法创建连接到MongoDB实例的MongoDB客户端。

要了解有关使用 MongoDB .NET/C# 驱动程序连接到 MongoDB 的更多信息,请参阅 .NET/C# 驱动程序文档中的连接指南

以下代码示例展示了如何配置 EF Core 提供程序并将文档插入数据库:

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

后退

Fundamentals