我需要以编程方式删除EF核心数据库。没问题吧?获取上下文,调用ctx.Database.EnsureDeleted(),一切就绪。
除了..在使用数据库时,您正在使用连接池(这样做有充分的理由),您可能会遇到无法删除数据库的情况。
在EF6时代,我有一个自定义的数据库初始化程序,它按如下方式覆盖InitializeDatabase(将数据库设置为单用户模式,这样其他连接都不会受到干扰)
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);
}
现在我想知道..您如何使用EF core 2.1做到这一点(或其他可以达到相同效果的东西)?