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 наблюдения во время ожидания завершения задачи.
Возвращаемое значение
Задача, представляющая асинхронную операцию сохранения. Результат задачи содержит true
значение , если база данных создана, false
если она уже существует.
- Атрибуты
Исключения
Если CancellationToken отменяется.
Комментарии
- Если база данных существует и содержит таблицы, никакие действия не предпринимаются. Для обеспечения совместимости схемы базы данных с моделью Entity Framework ничего не делается.
- Если база данных существует, но не содержит таблиц, то для создания схемы базы данных используется модель Entity Framework.
- Если база данных не существует, создается база данных, а для создания схемы базы данных используется модель Entity Framework.
При тестировании или создании прототипов с помощью Entity Framework обычно используется EnsureCreatedAsync(CancellationToken) сразу после EnsureDeletedAsync(CancellationToken) . Это гарантирует, что база данных находится в чистом состоянии перед каждым выполнением теста или прототипа. Однако обратите внимание, что данные в базе данных не сохраняются.
Обратите внимание, что этот API **not** использует миграции для создания базы данных. Кроме того, созданную базу данных нельзя позже обновить с помощью миграций. Если вы используете реляционную базу данных и используете миграции, то можно использовать , Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync чтобы убедиться, что база данных создана с помощью миграций и что все миграции были применены.
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext. включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .
Дополнительные сведения и примеры см. в разделах Управление схемами баз данных с помощью EF Core и API создания базы данных .
Применяется к
Entity Framework