DatabaseFacade.EnsureDeletedAsync(CancellationToken) 方法

定义

异步确保上下文的数据库不存在。 如果不存在,则不执行任何操作。 如果该数据库确实存在,则删除该数据库。

警告:将删除整个数据库,并且不会仅删除模型用于此上下文的数据库对象。

public virtual System.Threading.Tasks.Task<bool> EnsureDeletedAsync (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> EnsureDeletedAsync (System.Threading.CancellationToken cancellationToken = default);
abstract member EnsureDeletedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureDeletedAsync : 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 EnsureDeletedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureDeletedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Overridable Function EnsureDeletedAsync (Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

参数

cancellationToken
CancellationToken

等待 CancellationToken 任务完成时要观察的 。

返回

表示异步保存操作的任务。 如果数据库被删除,则任务结果包含 true ; false 如果数据库不存在,则为 。

属性

例外

注解

在使用实体框架进行测试或原型制作时,通常立即使用 EnsureCreatedAsync(CancellationToken) 以下 EnsureDeletedAsync(CancellationToken) 代码。 这可确保数据库在每次执行测试/原型之前处于干净状态。 但请注意,不会保留数据库中的数据。

Entity Framework Core 不支持在同一 DbContext 实例上运行多个并行操作。 这包括异步查询的并行执行以及从多个线程进行的任何显式并发使用。 因此,请始终立即等待异步调用,或者对并行执行的操作使用单独的 DbContext 实例。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题

有关详细信息和示例 ,请参阅使用 EF Core数据库创建 API 管理数据库 架构。

适用于