EF 코어 제공자 구성
이 페이지의 내용
이 가이드 에서는 MongoDB Entity Framework Core Provider를 사용하도록 애플리케이션 을 구성하는 방법을 학습 봅니다. 새 프로젝트 를 설정하다 하고 EF Core Provider를 설치하는 방법을 학습 보려면 빠른 시작을 참조하세요.
POCO 생성
일반 이전 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 가이드 를 참조하세요.
DB 컨텍스트 클래스 생성
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에 매핑되도록 지정합니다.
MongoDB 사용
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 Provider를 사용할 때 MongoDB .NET/ C# 드라이버 에서 메서드를 호출할 수 있습니다. 이전 예시 에서는 .NET/ C# 드라이버 의 MongoClient()
메서드를 사용하여 MongoDB 인스턴스 에 연결하는 MongoDB 클라이언트 를 만듭니다.
MongoDB .NET/C# 드라이버를 사용하여 MongoDB에 연결하는 방법에 대해 자세히 알아보려면 .NET/C# 드라이버 설명서의 연결 가이드 를 참조하세요.
예시
다음 코드 예시 에서는 EF Core Provider를 구성하고 데이터베이스 에 문서 를 삽입하는 방법을 보여 줍니다.
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"); } }