FS コア プロバイダーの設定
このガイドでは、MongoDB Entity Framework コア プロバイダーを使用するようにアプリケーションを構成する方法を学習します。 新しいプロジェクトを設定し、TF コア プロバイダーをインストールする方法については、 クイック スタートを参照してください。
POCO を作成
Plain Old CLR/Class オブジェクト の作成 、または POCO の場合は、エンティティのモデルとして を使用します。POCO は、フレームワーク固有の基本クラスやインターフェースから機能を継承しない単純なクラス オブジェクトです。
次のコード例は、カスタマーを表す POCO を作成する方法を示しています。
public class Customer { public ObjectId Id { get; set; } public String Name { get; set; } public String Order { get; set; } }
Tip
POCO の詳細については、.NET/C# ドライバーのドキュメントのPOCO ガイドを参照してください。
DB コンテキスト クラスの作成
Entity Framework コアの使用を開始するには、 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
エンティティが MongoDB のcustomers
コレクションにマップされることを指定します。
MongoDB の使用
DBContext
クラスを作成したら、 DbContextOptionsBuilder
オブジェクトを構築し、そのUseMongoDB()
メソッドを呼び出します。 このメソッドでは、 MongoClient
インスタンスと、操作するコレクションを保存するデータベースの名前の 2 つのパラメータを取ります。
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);
Tip
MongoClient の作成
LF Core プロバイダーを使用する場合、MongoDB .NET/C# ドライバーからメソッドを呼び出すことができます。 前の例では、.NET/C# ドライバーのMongoClient()
メソッドを使用して、MongoDB インスタンスに接続する MongoDB クライアントを作成しています。
MongoDB .NET/C# ドライバーを使用して MongoDB に接続する方法の詳細については、.NET/C# ドライバーのドキュメントの「接続ガイド」を参照してください。
例
次のコード例は、FS コアプロバイダーを構成し、 データベースにドキュメントを挿入する方法を示しています。
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"); } }