Entity framework 在应用程序启动时重置codefirst生成的数据库

Entity framework 在应用程序启动时重置codefirst生成的数据库,entity-framework,ef-code-first,entity-framework-migrations,Entity Framework,Ef Code First,Entity Framework Migrations,我有一个使用EF6的codefirst项目,我希望在每次应用程序启动时重置数据库(仅在dev中) 有没有一种方法可以在不需要从VS中的PM窗口执行更新数据库命令的情况下应用初始迁移 我想删除在使用应用程序时生成的所有数据您可以将以下内容放入Global.asax中: Database.Delete(); Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration

我有一个使用EF6的codefirst项目,我希望在每次应用程序启动时重置数据库(仅在dev中)

有没有一种方法可以在不需要从VS中的PM窗口执行更新数据库命令的情况下应用初始迁移


我想删除在使用应用程序时生成的所有数据

您可以将以下内容放入Global.asax中:

Database.Delete();
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
Database.Delete();
SetInitializer(新的MigrateDatabaseToLatestVersion());
ApplicationDbContext将引用您尝试删除/迁移的上下文


您可能需要设置#if DEBUG或其他条件,这样它就不会进入prod了。

谢谢Dismissile,我确实在数据库上遇到了一个错误。删除-无法删除数据库,因为它当前正在使用中。您可能已打开sql management studio并连接到数据库。把它关掉,你就可以走了。如果它托管在IIS中,您还可以停止应用程序一秒钟。仅使用VS通过服务器资源管理器进行连接。从那里断开连接没有帮助。如果我关闭Vs并再次运行该命令,它会起作用,但如果每次都必须关闭Vs,则看起来非常糟糕:(@DiverDan您每次都在处理上下文吗?如果不这样做,您仍然可以与数据库建立活动连接。