C# EF Core:服务器重新启动时删除并重新创建数据库
我们有一个ASP.NET核心MVC应用程序,其中包含实体框架核心。我们在现有的C# EF Core:服务器重新启动时删除并重新创建数据库,c#,asp.net-core,asp.net-core-mvc,entity-framework-core,C#,Asp.net Core,Asp.net Core Mvc,Entity Framework Core,我们有一个ASP.NET核心MVC应用程序,其中包含实体框架核心。我们在现有的开发、暂存和生产环境中添加了一个定制的测试环境。现在,我们希望应用程序每次在这个新的测试环境中启动时都删除并重新创建(或至少截断)数据库 有没有一种自动化的方法来实现这种行为?还是必须在数据库上下文中的每个DbSet上手动调用RemoveAll 确保上下文的数据库不存在。如果有 不存在,不采取任何行动。如果它确实存在,则数据库是 删除 警告:已删除整个数据库,但未进行任何删除操作 只有模型用于此上下文的数据库对象 然后
开发
、暂存
和生产
环境中添加了一个定制的测试
环境。现在,我们希望应用程序每次在这个新的测试环境中启动时都删除并重新创建(或至少截断)数据库
有没有一种自动化的方法来实现这种行为?还是必须在数据库上下文中的每个DbSet
上手动调用RemoveAll
确保上下文的数据库不存在。如果有
不存在,不采取任何行动。如果它确实存在,则数据库是
删除
警告:已删除整个数据库,但未进行任何删除操作
只有模型用于此上下文的数据库对象
然后调用dbContext.Database.Migrate()
创建新的(空的)DB并迁移到最新版本。顺便说一句,将带有“DROP Database”逻辑的生产代码放在里面看起来非常“危险”,甚至被一些配置/启动参数激活。一旦您将此提交给repo,您就开始倒计时生产DB下降(人为错误)。相反,在使用测试配置启动应用程序之前,从单独的脚本中删除数据库。