删除与 EF Core 一起使用的数据库

use*_*915 5 drop-database entity-framework-core .net-core

我需要以编程方式删除 EF 核心数据库。没问题吧?获取上下文,调用 ctx.Database.EnsureDeleted(),一切就绪。

除了......当数据库正在使用时,您正在使用连接池(这样做是有充分理由的),您可能会遇到无法删除数据库的情况。

回到 EF6 时代,我有一个自定义 DB 初始值设定项,它按如下方式覆盖 InitializeDatabase(将 DB 设置为单用户模式,以便其他连接不会干扰)

public override void InitializeDatabase(AudmDatabaseContext context)
    {
        context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction
           , string.Format("ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE", context.Database.Connection.Database));
        base.InitializeDatabase(context);
    }
Run Code Online (Sandbox Code Playgroud)

现在我想知道..你如何使用 EF 核心 2.1 做到这一点(或其他让我获得相同效果的东西)?