Share via


DatabaseFacade.EnsureCreatedAsync(CancellationToken) 메서드

정의

컨텍스트에 대한 데이터베이스가 있는지 확인합니다.

public virtual System.Threading.Tasks.Task<bool> EnsureCreatedAsync (System.Threading.CancellationToken cancellationToken = default);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Migrations operations require building the design-time model which is not supported with NativeAOT Use a migration bundle or an alternate way of executing migration operations.")]
public virtual System.Threading.Tasks.Task<bool> EnsureCreatedAsync (System.Threading.CancellationToken cancellationToken = default);
abstract member EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Migrations operations require building the design-time model which is not supported with NativeAOT Use a migration bundle or an alternate way of executing migration operations.")>]
abstract member EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Overridable Function EnsureCreatedAsync (Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

매개 변수

cancellationToken
CancellationToken

CancellationToken 작업이 완료 될 때까지 기다리는 동안 관찰할 입니다.

반환

비동기 저장 작업(operation)을 나타내는 작업(task)입니다. 작업 결과에는 데이터베이스가 만들어진 false 경우(이미 있는 경우)가 포함 true 됩니다.

특성

예외

설명

  • 데이터베이스가 있고 테이블이 있는 경우 아무 작업도 수행되지 않습니다. 데이터베이스 스키마가 Entity Framework 모델과 호환되는지 확인하기 위해 아무 작업도 수행되지 않습니다.
  • 데이터베이스가 있지만 테이블이 없는 경우 Entity Framework 모델을 사용하여 데이터베이스 스키마를 만듭니다.
  • 데이터베이스가 없으면 데이터베이스가 만들어지고 Entity Framework 모델을 사용하여 데이터베이스 스키마를 만듭니다.

Entity Framework를 사용하여 테스트하거나 프로토타입을 생성할 때 바로 다음 EnsureDeletedAsync(CancellationToken) 을 사용하는 EnsureCreatedAsync(CancellationToken) 것이 일반적입니다. 이렇게 하면 테스트/프로토타입을 실행할 때마다 데이터베이스가 클린 상태가 됩니다. 그러나 데이터베이스의 데이터는 보존되지 않습니다.

이 API는 **not**에서 마이그레이션을 사용하여 데이터베이스를 만듭니다. 또한 나중에 마이그레이션을 사용하여 만든 데이터베이스를 업데이트할 수 없습니다. 관계형 데이터베이스를 대상으로 하고 마이그레이션을 사용하는 경우 를 사용하여 Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync 마이그레이션을 사용하여 데이터베이스가 생성되고 모든 마이그레이션이 적용되었는지 확인할 수 있습니다.

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

자세한 내용 과 예제는 EF Core데이터베이스 만들기 API 를 사용하여 데이터베이스 스키마 관리를 참조하세요.

적용 대상