我们有一个带有Entity Framework Core的ASP.NET Core MVC应用程序。我们已在现有Testing
,Development
和Staging
环境中添加了自定义Production
环境。现在,我们希望每次应用程序在此新的测试环境中启动时,应用程序都会删除并重新创建(或至少截断)数据库。
是否有自动化方式来实现此行为?或者我是否必须在数据库上下文中的每个RemoveAll
上手动调用DbSet
?
答案 0 :(得分:7)
致电dbContext.Database.EnsureDeleted();
确保上下文的数据库不存在。如果是的话 不存在,不采取任何行动。如果它确实存在则数据库是 删除。
警告:删除整个数据库,不做任何删除 只是模型用于此上下文的数据库对象。
然后调用dbContext.Database.Migrate()
创建新的(空)数据库并迁移到最新版本。