contract@chaoreumsoft.co.kr |    031-921-0523

Entity Framework Core : DbContext

페이지 정보

작성자최고관리자

본문

0dc9464e270a7c53b10f992ce51c360e_1651216045_031.png
 

Entity Framework Core: DbContext

DbContext 클래스는 Entity Framework의 필수적인 부분입니다. DbContext의 인스턴스는 엔터티의 인스턴스를 쿼리하고 데이터베이스에 저장하는 데 사용할 수 있는 데이터베이스와의 세션을 나타냅니다. DbContext는 작업 단위와 저장소 패턴의 조합입니다.

EF Core의 DbContext를 사용하면 다음 작업을 수행할 수 있습니다.
  • Manage database connection
  • Configure model & relationship
  • Querying database
  • Saving data to the database
  • Configure change tracking
  • Caching
  • Transaction management
애플리케이션에서 DbContext를 사용하려면 컨텍스트 클래스라고도 하는 DbContext에서 파생되는 클래스를 만들어야 합니다.

이 컨텍스트 클래스에는 일반적으로 모델의 각 엔터티에 대한 DbSet<TEntity> 속성이 포함됩니다.

EF Core에서 컨텍스트 클래스의 다음 예를 고려하십시오.
public class SchoolContext : DbContext
{
    public SchoolContext()
    {
  
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
    }
    //entities
    public DbSet<Student> Students { get; set; }
    public DbSet<Course> Courses { get; set; }
} 
위에서 SchoolContext 클래스는 DbContext 클래스에서 파생되며, Student 및 Course 유형의 DbSet<TEntity> 속성을 ​​포함 합니다.
또한 OnConfiguring 및 OnModelCreating 메서드를 재정의합니다.

데이터베이스에 연결하고 학생 또는 코스 데이터를 저장하거나 검색하려면 SchoolContext의 인스턴스를 만들어야 합니다.
OnConfiguring() 메서드를 사용하면 DbContextOptionsBuilder를 사용하여 컨텍스트와 함께 사용할 데이터 소스를 선택하고 구성할 수 있습니다. 여기에서 DbContext 클래스를 구성하는 방법을 알아보세요.

OnModelCreating() 메서드를 사용하면 ModelBuilder Fluent API를 사용하여 모델을 구성할 수 있습니다.

DbContext 메서드 

 Method

 Usage

 Add

 상태가 추가된 DbContext에 새 엔터티를 추가하고 추적을 시작 합니다.

 이 새 엔터티 데이터는 SaveChanges()가 호출될 때 데이터베이스에 삽입됩니다.

 AddAsync

 상태가 추가된 DbContext에 새 엔터티를 추가하고 추적을 시작하는 비동기 메서드입니다.

 이 새 엔터티 데이터는 SaveChangesAsync()가 호출될 때 데이터베이스에 삽입됩니다.

 AddRange

 상태가 추가된 DbContext에 새 엔터티 컬렉션을 추가하고 추적을 시작합니다.

 이 새 엔터티 데이터는 SaveChanges()가 호출될 때 데이터베이스에 삽입됩니다.

 AddRangeAsync

 SaveChangesAsync()에 저장될 새 엔터티 컬렉션을 추가하기 위한 비동기 메서드입니다.

 Attach

 상태가 변경되지 않은 DbContext에 새 엔터티 또는 기존 엔터티를 연결하고 추적을 시작합니다.

 AttachRange

 상태가 변경되지 않은 DbContext에 신규 또는 기존 엔터티 컬렉션을 연결하고 추적을 시작합니다.

 Entry

 지정된 엔터티에 대한 EntityEntry를 가져옵니다. 항목은 엔터티에 대한 변경 추적 정보 및 작업에 대한 액세스를 제공합니다.

 Find

 주어진 기본 키 값으로 엔터티를 찾습니다.

 FindAsync

 주어진 기본 키 값으로 엔터티를 찾기 위한 비동기 방식입니다.

 Remove

 SaveChanges()가 호출될 때 데이터를 삭제할 지정된 엔터티로 삭제됨 상태를 설정합니다.

 RemoveRange

 SaveChanges()가 호출될 때 단일 DB 왕복에서 데이터를 삭제할 엔터티 모음으로 삭제됨 상태를 설정합니다.

 SaveChanges

 추가됨, 수정됨 또는 삭제됨 상태의 엔터티에 대해 데이터베이스에 INSERT, UPDATE 또는 DELETE 명령을 실행합니다.

 SaveChangesAsync

 SaveChanges()의 비동기 메서드

 Set

 TEntity의 인스턴스를 쿼리하고 저장하는 데 사용할 수 있는 DbSet<TEntity>를 만듭니다.

 Update

 연결이 끊긴 엔터티를 수정됨 상태로 연결하고 추적을 시작합니다. SaveChagnes()가 호출될 때 데이터가 저장됩니다.

 UpdateRange

 연결이 끊긴 엔터티 모음을 수정됨 상태로 연결하고 추적을 시작합니다. SaveChagnes()가 호출될 때 데이터가 저장됩니다.

 OnConfiguring

 이 컨텍스트에 사용할 데이터베이스(및 기타 옵션)를 구성하려면 이 메서드를 재정의합니다. 이 메서드는 생성된 컨텍스트의 각 인스턴스에 대해 호출됩니다.

 OnModelCreating

 파생 컨텍스트의 DbSet<TEntity> 속성에 노출된 엔터티 형식에서 규칙에 따라 검색된 모델을 추가로 구성하려면 이 메서드를 재정의합니다.








Tag
Entity Framework Core 사용법, EF Core
© Chaoreumsoft Corp. All rights reserved.