DbContext 클래스

정의

DbContext 인스턴스는 데이터베이스와의 세션을 나타내며 엔터티의 인스턴스를 쿼리하고 저장하는 데 사용할 수 있습니다. DbContext는 작업 단위 및 리포지토리 패턴의 조합입니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 대기하거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용은 DbContext 스레딩 문제 방지를 참조하세요.

public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbQueryCache, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
public class DbContext : IAsyncDisposable, IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbQueryCache
    interface IDbContextPoolable
type DbContext = class
    interface IDisposable
    interface IAsyncDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
    interface IResettableService
type DbContext = class
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
    interface IResettableService
    interface IDisposable
    interface IAsyncDisposable
Public Class DbContext
Implements IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IDbContextDependencies, IDbContextPoolable, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IDbContextDependencies, IDbContextPoolable, IDbQueryCache, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IAsyncDisposable, IDbContextDependencies, IDbContextPoolable, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
상속
DbContext
구현
IInfrastructure<IServiceProvider> IDisposable Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable Microsoft.EntityFrameworkCore.Internal.IDbSetCache Microsoft.EntityFrameworkCore.Internal.IDbQueryCache IResettableService IAsyncDisposable

설명

일반적으로 DbContext에서 파생되고 DbSet<TEntity> 모델의 각 엔터티에 대한 속성을 포함하는 클래스를 만듭니다. DbSet<TEntity>속성에 public setter가 있는 경우 파생 컨텍스트의 인스턴스가 만들어질 때 자동으로 초기화됩니다.

메서드를 OnConfiguring(DbContextOptionsBuilder) 재정의하여 컨텍스트에 사용할 데이터베이스(및 기타 옵션)를 구성합니다. 또는 컨텍스트에서 인라인 대신 외부에서 구성을 수행하려는 경우 DbContextOptionsBuilder<TContext> (또는 )를 사용하여 DbContextOptionsBuilder (또는 ) 인스턴스를 외부적으로 만들어 의 기본 생성자에 전달할 수 DbContextOptions<TContext> DbContextOptions DbContext 있습니다.

모델은 파생 컨텍스트의 속성에 있는 엔터티 클래스에 대한 규칙 집합을 실행하여 DbSet<TEntity> 검색됩니다. 규칙에 따라 검색되는 모델을 추가로 구성하려면 메서드를 재정의할 수 OnModelCreating(ModelBuilder) 있습니다.

자세한 내용은 DbContext 수명, 구성 및 초기화, EF Core 데이터 쿼리, 추적 변경및 EF Core 데이터 저장을 참조하세요.

생성자

DbContext()

DbContext 클래스의 새 인스턴스를 초기화합니다. OnConfiguring(DbContextOptionsBuilder)입니다. 메서드는 이 컨텍스트에 사용할 데이터베이스(및 기타 옵션)를 구성하기 위해 호출됩니다.

DbContext(DbContextOptions)

지정된 옵션을 사용하여 클래스의 새 DbContext 인스턴스를 초기화합니다. OnConfiguring(DbContextOptionsBuilder)메서드는 옵션의 추가 구성을 허용하기 위해 계속 호출됩니다.

속성

ChangeTracker

이 컨텍스트가 추적 하는 엔터티 인스턴스에 대 한 정보 및 작업에 대 한 액세스를 제공 합니다.

ContextId

컨텍스트 인스턴스 및 풀 임대에 대 한 고유 식별자입니다 (있는 경우).

이 식별자는 주로 여러 이벤트에서 동일 하거나 다른 컨텍스트 인스턴스를 사용 하 고 있다는 것을 쉽게 식별할 수 있도록 로깅 및 디버깅에 대 한 상관 관계 ID로 사용 됩니다.

Database

이 컨텍스트에 대 한 데이터베이스 관련 정보 및 작업에 대 한 액세스를 제공 합니다.

Model

엔터티의 모양, 엔터티 간의 관계 및 데이터베이스에 매핑하는 방법에 대한 메타데이터입니다. 데이터베이스를 초기화하는 데 필요한 모든 정보를 포함하지 않을 수 있습니다.

메서드

Add(Object)

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

State단일 엔터티의 상태만 설정하려면 를 사용합니다.

Add<TEntity>(TEntity)

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

State단일 엔터티의 상태만 설정하려면 를 사용합니다.

AddAsync(Object, CancellationToken)

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

State단일 엔터티의 상태만 설정하려면 를 사용합니다.

이 메서드는 'Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo'에서 사용하는 것과 같은 특수 값 생성기가 데이터베이스에 비동기적으로 액세스할 수 있도록 하기 위해서만 비동기입니다. 다른 모든 경우에는 비동기 메서드를 사용해야 합니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 대기하거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용은 DbContext 스레딩 문제 방지를 참조하세요.

AddAsync<TEntity>(TEntity, CancellationToken)

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

이 메서드는 'Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo'에서 사용하는 것과 같은 특수 값 생성기가 데이터베이스에 비동기적으로 액세스할 수 있도록 하기 위해서만 비동기입니다. 다른 모든 경우에는 비동기 메서드를 사용해야 합니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 대기하거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용은 DbContext 스레딩 문제 방지를 참조하세요.

AddRange(IEnumerable<Object>)

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

AddRange(Object[])

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

AddRangeAsync(IEnumerable<Object>, CancellationToken)

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

이 메서드는 'Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo'에서 사용하는 것과 같은 특수 값 생성기가 데이터베이스에 비동기적으로 액세스할 수 있도록 하기 위해서만 비동기입니다. 다른 모든 경우에는 비동기 메서드를 사용해야 합니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 대기하거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용은 DbContext 스레딩 문제 방지를 참조하세요.

AddRangeAsync(Object[])

가 호출될 때 데이터베이스에 삽입되는 상태에서 지정된 엔터티 및 아직 추적되지 않은 다른 연결 가능한 엔터티를 추적하기 Added SaveChanges() 시작합니다.

이 메서드는 'Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo'에서 사용하는 것과 같은 특수 값 생성기가 데이터베이스에 비동기적으로 액세스할 수 있도록 하기 위해서만 비동기입니다. 다른 모든 경우에는 비동기 메서드를 사용해야 합니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 대기하거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용은 DbContext 스레딩 문제 방지를 참조하세요.

Attach(Object)

기본적으로 상태를 사용하여 지정된 엔터티에서 연결할 수 있는 지정된 엔터티 및 항목 추적을 Unchanged 시작하지만 다른 상태가 사용될 경우 아래를 참조하세요.

일반적으로 가 호출될 때까지 데이터베이스 상호 작용이 수행되지 SaveChanges() 않습니다.

탐색 속성의 재귀 검색은 컨텍스트에서 아직 추적되지 않는 연결할 수 있는 엔터티를 찾기 위해 수행됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적됩니다.

엔터티에 기본 키 값이 설정된 경우 생성된 키를 가진 엔터티 형식의 경우 Unchanged 상태에서 추적됩니다. 기본 키 값이 설정되지 않은 경우 Added 상태에서 추적됩니다. 이렇게 하면 새 엔터티만 삽입됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성 된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Unchanged 입니다.

State단일 엔터티의 상태만 설정 하려면를 사용 합니다.

Attach<TEntity>(TEntity)

기본적으로 상태를 사용 하 여 지정 된 엔터티에서 제공 된 엔터티 및 항목에 대 한 추적을 시작 Unchanged 하지만 다른 상태를 사용 하는 경우 아래를 참조 하세요.

일반적으로가 호출 될 때까지 데이터베이스 상호 작용이 수행 되지 않습니다 SaveChanges() .

컨텍스트에서 아직 추적 하지 않는 연결 가능한 엔터티를 찾기 위해 탐색 속성의 재귀 검색이 수행 됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적 됩니다.

엔터티의 기본 키 값이 설정 된 경우 키가 생성 된 엔터티 형식의 경우 상태에서 추적 됩니다 Unchanged . 기본 키 값이 설정 되지 않은 경우 상태에서 추적 됩니다 Added . 이렇게 하면 새 엔터티만 삽입 됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성 된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Unchanged 입니다.

State단일 엔터티의 상태만 설정 하려면를 사용 합니다.

AttachRange(IEnumerable<Object>)

기본적으로 상태를 사용 하 여 지정 된 엔터티에서 도달할 수 있는 지정 된 엔터티 및 항목에 대 한 추적을 시작 Unchanged 합니다. 다른 상태를 사용 하는 경우에는 아래를 참조 하세요.

일반적으로가 호출 될 때까지 데이터베이스 상호 작용이 수행 되지 않습니다 SaveChanges() .

컨텍스트에서 아직 추적 하지 않는 연결 가능한 엔터티를 찾기 위해 탐색 속성의 재귀 검색이 수행 됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적 됩니다.

엔터티의 기본 키 값이 설정 된 경우 키가 생성 된 엔터티 형식의 경우 상태에서 추적 됩니다 Unchanged . 기본 키 값이 설정 되지 않은 경우 상태에서 추적 됩니다 Added . 이렇게 하면 새 엔터티만 삽입 됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성 된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Unchanged 입니다.

State단일 엔터티의 상태만 설정 하려면를 사용 합니다.

AttachRange(Object[])

기본적으로 상태를 사용 하 여 지정 된 엔터티에서 도달할 수 있는 지정 된 엔터티 및 항목에 대 한 추적을 시작 Unchanged 합니다. 다른 상태를 사용 하는 경우에는 아래를 참조 하세요.

일반적으로가 호출 될 때까지 데이터베이스 상호 작용이 수행 되지 않습니다 SaveChanges() .

컨텍스트에서 아직 추적 하지 않는 연결 가능한 엔터티를 찾기 위해 탐색 속성의 재귀 검색이 수행 됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적 됩니다.

엔터티의 기본 키 값이 설정 된 경우 키가 생성 된 엔터티 형식의 경우 상태에서 추적 됩니다 Unchanged . 기본 키 값이 설정 되지 않은 경우 상태에서 추적 됩니다 Added . 이렇게 하면 새 엔터티만 삽입 됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성 된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Unchanged 입니다.

State단일 엔터티의 상태만 설정 하려면를 사용 합니다.

ConfigureConventions(ModelConfigurationBuilder)

기본값을 설정 하 고 규칙을 실행 하기 전에 규칙을 구성 하려면이 메서드를 재정의 합니다. 이 메서드는 이전에 호출 됩니다 OnModelCreating(ModelBuilder) .

Dispose()

이 컨텍스트에 할당 된 리소스를 해제 합니다.

DisposeAsync()

이 컨텍스트에 할당 된 리소스를 해제 합니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행 되는 여러 병렬 작업을 지원 하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

Entry(Object)

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

이 메서드는 추적 되지 않는 엔터티에서 호출 될 수 있습니다. 그런 다음 State 반환 된 항목의 속성을 설정 하 여 컨텍스트가 지정 된 상태에서 엔터티 추적을 시작 하도록 할 수 있습니다.

Entry<TEntity>(TEntity)

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

Find(Type, Object[])

지정된 기본 키 값이 있는 엔터티를 찾습니다. 지정 된 기본 키 값을 가진 엔터티가 컨텍스트에 의해 추적 되는 경우 데이터베이스에 대 한 요청을 수행 하지 않고 즉시 반환 됩니다. 그렇지 않으면 지정 된 기본 키 값을 사용 하 여 엔터티에 대 한 데이터베이스에 대해 쿼리가 수행 되며,이 엔터티 (있는 경우)가 컨텍스트에 연결 되 고 반환 됩니다. 엔터티를 찾을 수 없으면 null이 반환 됩니다.

Find<TEntity>(Object[])

지정된 기본 키 값이 있는 엔터티를 찾습니다. 지정 된 기본 키 값을 가진 엔터티가 컨텍스트에 의해 추적 되는 경우 데이터베이스에 대 한 요청을 수행 하지 않고 즉시 반환 됩니다. 그렇지 않으면 지정 된 기본 키 값을 사용 하 여 엔터티에 대 한 데이터베이스에 대해 쿼리가 수행 되며,이 엔터티 (있는 경우)가 컨텍스트에 연결 되 고 반환 됩니다. 엔터티를 찾을 수 없으면 null이 반환 됩니다.

FindAsync(Type, Object[])

지정된 기본 키 값이 있는 엔터티를 찾습니다. 지정 된 기본 키 값을 가진 엔터티가 컨텍스트에 의해 추적 되는 경우 데이터베이스에 대 한 요청을 수행 하지 않고 즉시 반환 됩니다. 그렇지 않으면 지정 된 기본 키 값을 사용 하 여 엔터티에 대 한 데이터베이스에 대해 쿼리가 수행 되며,이 엔터티 (있는 경우)가 컨텍스트에 연결 되 고 반환 됩니다. 엔터티를 찾을 수 없으면 null이 반환 됩니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행 되는 여러 병렬 작업을 지원 하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

FindAsync(Type, Object[], CancellationToken)

지정된 기본 키 값이 있는 엔터티를 찾습니다. 지정 된 기본 키 값을 가진 엔터티가 컨텍스트에 의해 추적 되는 경우 데이터베이스에 대 한 요청을 수행 하지 않고 즉시 반환 됩니다. 그렇지 않으면 지정 된 기본 키 값을 사용 하 여 엔터티에 대 한 데이터베이스에 대해 쿼리가 수행 되며,이 엔터티 (있는 경우)가 컨텍스트에 연결 되 고 반환 됩니다. 엔터티를 찾을 수 없으면 null이 반환 됩니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행 되는 여러 병렬 작업을 지원 하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

FindAsync<TEntity>(Object[])

지정된 기본 키 값이 있는 엔터티를 찾습니다. 지정 된 기본 키 값을 가진 엔터티가 컨텍스트에 의해 추적 되는 경우 데이터베이스에 대 한 요청을 수행 하지 않고 즉시 반환 됩니다. 그렇지 않으면 지정 된 기본 키 값을 사용 하 여 엔터티에 대 한 데이터베이스에 대해 쿼리가 수행 되며,이 엔터티 (있는 경우)가 컨텍스트에 연결 되 고 반환 됩니다. 엔터티를 찾을 수 없으면 null이 반환 됩니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행 되는 여러 병렬 작업을 지원 하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

FindAsync<TEntity>(Object[], CancellationToken)

지정된 기본 키 값이 있는 엔터티를 찾습니다. 지정 된 기본 키 값을 가진 엔터티가 컨텍스트에 의해 추적 되는 경우 데이터베이스에 대 한 요청을 수행 하지 않고 즉시 반환 됩니다. 그렇지 않으면 지정 된 기본 키 값을 사용 하 여 엔터티에 대 한 데이터베이스에 대해 쿼리가 수행 되며,이 엔터티 (있는 경우)가 컨텍스트에 연결 되 고 반환 됩니다. 엔터티를 찾을 수 없으면 null이 반환 됩니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행 되는 여러 병렬 작업을 지원 하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

FromExpression<TResult>(Expression<Func<IQueryable<TResult>>>)

지정 된 쿼리 식에 대 한 쿼리할 쿼리를 만듭니다.

OnConfiguring(DbContextOptionsBuilder)

이 컨텍스트에 사용할 데이터베이스(및 기타 옵션)를 구성하려면 이 메서드를 재정의합니다. 이 메서드는 만들어진 컨텍스트의 각 인스턴스에 대해 호출됩니다. 기본 구현은 아무 것도 수행하지 않습니다.

인스턴스가 생성자에 전달되었을 수도 있고 전달되지 않았을 수도 있는 경우 를 DbContextOptions 사용하여 IsConfigured 옵션이 이미 설정되었는지 확인하고 에서 논리의 일부 또는 전체를 건너뛸 수 OnConfiguring(DbContextOptionsBuilder) 있습니다.

OnModelCreating(ModelBuilder)

파생 컨텍스트의 속성에 노출된 엔터티 형식에서 규칙에 따라 검색된 모델을 추가로 구성하려면 이 DbSet<TEntity> 메서드를 재정의합니다. 결과 모델은 파생 컨텍스트의 후속 인스턴스에 대해 캐시되고 다시 사용될 수 있습니다.

Query<TQuery>()
사용되지 않습니다.

DbSet<TEntity>인스턴스를 쿼리하는 데 사용할 수 있는 을 TQuery 만듭니다.

Remove(Object)

가 호출될 때 데이터베이스에서 제거될 상태의 지정된 엔터티 Deleted 추적을 시작합니다. SaveChanges()

Remove<TEntity>(TEntity)

가 호출될 때 데이터베이스에서 제거될 상태의 지정된 엔터티 Deleted 추적을 시작합니다. SaveChanges()

RemoveRange(IEnumerable<Object>)

가 호출될 때 데이터베이스에서 제거될 상태의 지정된 엔터티 Deleted 추적을 시작합니다. SaveChanges()

RemoveRange(Object[])

가 호출될 때 데이터베이스에서 제거될 상태의 지정된 엔터티 Deleted 추적을 시작합니다. SaveChanges()

SaveChanges()

이 컨텍스트의 모든 변경 내용을 데이터베이스에 저장합니다.

이 메서드는 자동으로 를 DetectChanges() 호출하여 기본 데이터베이스에 저장하기 전에 엔터티 인스턴스에 대한 변경 내용을 검색합니다. 이 설정은 를 통해 사용하지 않도록 설정될 수 AutoDetectChangesEnabled 있습니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 대기하거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용은 DbContext 스레딩 문제 방지를 참조하세요.

SaveChanges(Boolean)

이 컨텍스트의 모든 변경 내용을 데이터베이스에 저장합니다.

이 메서드는 자동으로 를 DetectChanges() 호출하여 기본 데이터베이스에 저장하기 전에 엔터티 인스턴스에 대한 변경 내용을 검색합니다. 이 설정은 를 통해 사용하지 않도록 설정될 수 AutoDetectChangesEnabled 있습니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 대기하거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용은 DbContext 스레딩 문제 방지를 참조하세요.

SaveChangesAsync(Boolean, CancellationToken)

이 컨텍스트의 모든 변경 내용을 데이터베이스에 저장 합니다.

이 메서드는를 자동으로 호출 DetectChanges() 하 여 기본 데이터베이스에 저장 하기 전에 엔터티 인스턴스의 변경 내용을 검색 합니다. 이는를 통해 사용 하지 않도록 설정할 수 있습니다 AutoDetectChangesEnabled .

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행 되는 여러 병렬 작업을 지원 하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

SaveChangesAsync(CancellationToken)

이 컨텍스트의 모든 변경 내용을 데이터베이스에 저장합니다.

이 메서드는 자동으로 를 DetectChanges() 호출하여 기본 데이터베이스에 저장하기 전에 엔터티 인스턴스에 대한 변경 내용을 검색합니다. 이 설정은 를 통해 사용하지 않도록 설정될 수 AutoDetectChangesEnabled 있습니다.

Entity Framework Core 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

Set<TEntity>()

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

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행 되는 여러 병렬 작업을 지원 하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서는 항상 비동기 호출을 즉시 대기 하거나 병렬로 실행 되는 작업에 대해 별도의 DbContext 인스턴스를 사용 합니다. 자세한 내용은 DbContext 스레딩 문제 방지 를 참조 하세요.

Set<TEntity>(String)

DbSet<TEntity>의 인스턴스를 쿼리하고 저장 하는 데 사용할 수 있는 공유 형식 엔터티 형식에 대 한를 만듭니다 TEntity .

일반적으로 공유 형식 엔터티 형식은 다 대 다 관계에서 조인 엔터티에 사용 됩니다.

Update(Object)

기본적으로 상태를 사용 하 여 지정 된 엔터티에서 제공 된 엔터티 및 항목에 대 한 추적을 시작 Modified 하지만 다른 상태를 사용 하는 경우 아래를 참조 하세요.

일반적으로가 호출 될 때까지 데이터베이스 상호 작용이 수행 되지 않습니다 SaveChanges() .

컨텍스트에서 아직 추적 하지 않는 연결 가능한 엔터티를 찾기 위해 탐색 속성의 재귀 검색이 수행 됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적 됩니다.

엔터티의 기본 키 값이 설정 된 경우 키가 생성 된 엔터티 형식의 경우 상태에서 추적 됩니다 Modified . 기본 키 값이 설정 되지 않은 경우 상태에서 추적 됩니다 Added . 이렇게 하면 기존 엔터티가 업데이트 되는 동안 새 엔터티가 삽입 됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성 된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Modified 입니다.

State단일 엔터티의 상태만 설정 하려면를 사용 합니다.

Update<TEntity>(TEntity)

기본적으로 상태를 사용 하 여 지정 된 엔터티에서 제공 된 엔터티 및 항목에 대 한 추적을 시작 Modified 하지만 다른 상태를 사용 하는 경우 아래를 참조 하세요.

일반적으로가 호출 될 때까지 데이터베이스 상호 작용이 수행 되지 않습니다 SaveChanges() .

컨텍스트에서 아직 추적 하지 않는 연결 가능한 엔터티를 찾기 위해 탐색 속성의 재귀 검색이 수행 됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적 됩니다.

엔터티의 기본 키 값이 설정 된 경우 키가 생성 된 엔터티 형식의 경우 상태에서 추적 됩니다 Modified . 기본 키 값이 설정 되지 않은 경우 상태에서 추적 됩니다 Added . 이렇게 하면 기존 엔터티가 업데이트 되는 동안 새 엔터티가 삽입 됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성 된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Modified 입니다.

State단일 엔터티의 상태만 설정 하려면를 사용 합니다.

UpdateRange(IEnumerable<Object>)

기본적으로 상태를 사용 하 여 지정 된 엔터티에서 도달할 수 있는 지정 된 엔터티 및 항목에 대 한 추적을 시작 Modified 합니다. 다른 상태를 사용 하는 경우에는 아래를 참조 하세요.

일반적으로가 호출 될 때까지 데이터베이스 상호 작용이 수행 되지 않습니다 SaveChanges() .

컨텍스트에서 아직 추적 하지 않는 연결 가능한 엔터티를 찾기 위해 탐색 속성의 재귀 검색이 수행 됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적 됩니다.

엔터티의 기본 키 값이 설정 된 경우 키가 생성 된 엔터티 형식의 경우 상태에서 추적 됩니다 Modified . 기본 키 값이 설정 되지 않은 경우 상태에서 추적 됩니다 Added . 이렇게 하면 기존 엔터티가 업데이트 되는 동안 새 엔터티가 삽입 됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성 된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Modified 입니다.

State단일 엔터티의 상태만 설정 하려면를 사용 합니다.

UpdateRange(Object[])

기본적으로 상태를 사용 하 여 지정 된 엔터티에서 도달할 수 있는 지정 된 엔터티 및 항목에 대 한 추적을 시작 Modified 합니다. 다른 상태를 사용 하는 경우에는 아래를 참조 하세요.

일반적으로가 호출 될 때까지 데이터베이스 상호 작용이 수행 되지 않습니다 SaveChanges() .

컨텍스트에서 아직 추적 하지 않는 연결 가능한 엔터티를 찾기 위해 탐색 속성의 재귀 검색이 수행 됩니다. 찾은 모든 엔터티는 컨텍스트에 의해 추적 됩니다.

엔터티의 기본 키 값이 설정 된 경우 키가 생성 된 엔터티 형식의 경우 상태에서 추적 됩니다 Modified . 기본 키 값이 설정 되지 않은 경우 상태에서 추적 됩니다 Added . 이렇게 하면 기존 엔터티가 업데이트 되는 동안 새 엔터티가 삽입 됩니다. 기본 키 속성이 속성 형식의 CLR 기본값 이외의 값으로 설정 된 경우 엔터티의 기본 키 값이 설정 된 것으로 간주 됩니다.

생성된 키가 없는 엔터티 형식의 경우 상태 집합은 항상 Modified 입니다.

State단일 엔터티의 상태만 설정하려면 를 사용합니다.

이벤트

SaveChangesFailed

또는에 대 한 호출이 SaveChanges 예외와 함께 실패 하는 경우 발생 하는 이벤트 SaveChangesAsync 입니다.

SavedChanges

또는에 대 한 호출이 끝날 때 발생 하는 이벤트입니다. SaveChangesSaveChangesAsync

SavingChanges

또는에 대 한 호출이 시작 될 때 발생 하는 이벤트입니다. SaveChangesSaveChangesAsync

명시적 인터페이스 구현

IDbContextDependencies.ChangeDetector

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextDependencies.EntityFinderFactory

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextDependencies.EntityFinderSource

이 API는 Entity Framework Core 인프라를 지원 하며 사용자 코드에서 직접 사용 하기 위한 것이 아닙니다. 이 API는 이후 릴리스에서 변경되거나 제거될 수 있습니다.

IDbContextDependencies.EntityGraphAttacher

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextDependencies.InfrastructureLogger

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextDependencies.QueryProvider

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextDependencies.QuerySource

이 API는 Entity Framework Core 인프라를 지원 하며 사용자 코드에서 직접 사용 하기 위한 것이 아닙니다. 이 API는 이후 릴리스에서 변경되거나 제거될 수 있습니다.

IDbContextDependencies.SetSource

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextDependencies.StateManager

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextDependencies.UpdateLogger

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextPoolable.ClearLease()

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextPoolable.ResetState()
IDbContextPoolable.Resurrect(DbContextPoolConfigurationSnapshot)

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IDbContextPoolable.SetLease(DbContextLease)

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

IDbContextPoolable.SetLeaseAsync(DbContextLease, CancellationToken)

이 API는 Entity Framework Core 인프라를 지원하고 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 통지 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

IDbContextPoolable.SetPool(IDbContextPool)

이 API는 Entity Framework Core 인프라를 지원하고 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 통지 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

IDbContextPoolable.SnapshotConfiguration()

이 API는 Entity Framework Core 인프라를 지원하고 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 통지 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

IDbQueryCache.GetOrAddQuery(IDbQuerySource, Type)

이 API는 Entity Framework Core 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 API는 이후 릴리스에서 변경되거나 제거될 수 있습니다.

IDbSetCache.GetOrAddSet(IDbSetSource, String, Type)

이 API는 Entity Framework Core 인프라를 지원하고 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 통지 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

IDbSetCache.GetOrAddSet(IDbSetSource, Type)

이 API는 Entity Framework Core 인프라를 지원하고 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 통지 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

IInfrastructure<IServiceProvider>.Instance

IServiceProvider서비스를 확인 하는 데 사용 되는 범위를 가져옵니다.

이 속성은 공용 API 화면에서 직접 노출 되지 않는 서비스를 사용 해야 하는 확장 메서드를 사용 하기 위한 것입니다.

IResettableService.ResetState()

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

IResettableService.ResetStateAsync(CancellationToken)

이 API는 Entity Framework Core 인프라를 지원 하며 공용 Api와 동일한 호환성 표준을 적용 하지 않는 내부 API입니다. 이는 모든 릴리스에서 통지 없이 변경 되거나 제거 될 수 있습니다. 이러한 작업은 매우 주의 해 서 코드에서 직접 사용 해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 응용 프로그램 오류가 발생할 수 있습니다.

확장 메서드

GetInfrastructure<T>(IInfrastructure<T>)

를 사용 하 여 숨겨지는 속성의 값을 가져옵니다 IInfrastructure<T> .

이 메서드는 일반적으로 데이터베이스 공급자 및 기타 확장 프로그램에서 사용 됩니다. 일반적으로 응용 프로그램 코드에는 사용 되지 않습니다.

IInfrastructure<T> 는 응용 프로그램 코드에서 사용 하기에는 적합 하지 않지만 데이터베이스 공급자가 작성 한 확장 메서드 등에 사용할 수 있는 속성을 숨기는 데 사용 됩니다.

CreateProxy(DbContext, Type, Object[])

프록시 만들기가 켜져 있는 경우 엔터티 형식에 대한 프록시 인스턴스를 만듭니다.

CreateProxy<TEntity>(DbContext, Action<TEntity>, Object[])

프록시 만들기가 켜져 있는 경우 엔터티 형식에 대한 프록시 인스턴스를 만듭니다.

CreateProxy<TEntity>(DbContext, Object[])

프록시 만들기가 켜져 있는 경우 엔터티 형식에 대한 프록시 인스턴스를 만듭니다.

적용 대상