Asp.net mvc 2 如何首先使用EF4代码重新创建DB进行测试

Asp.net mvc 2 如何首先使用EF4代码重新创建DB进行测试,asp.net-mvc-2,ef4-code-only,Asp.net Mvc 2,Ef4 Code Only,在我的.NETMVC2.0项目中,我首先使用EntityFramework4代码,我很难让数据库与实体同步。我想要的是一个我可以调用的页面,例如:/DB/Recreate,它将删除我当前的DB并重新创建一个空的DB。目前在我的global.asax中,我有 protected override void OnApplicationStarted() { Database.SetInitializer(new CreateDatabaseOnlyIfNotE

在我的.NETMVC2.0项目中,我首先使用EntityFramework4代码,我很难让数据库与实体同步。我想要的是一个我可以调用的页面,例如:/DB/Recreate,它将删除我当前的DB并重新创建一个空的DB。目前在我的global.asax中,我有

protected override void OnApplicationStarted()
        {
            Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>());

            AreaRegistration.RegisterAllAreas();

            RegisterRoutes(RouteTable.Routes);
            RegisterAllControllersIn(Assembly.GetExecutingAssembly());
        }
applicationstarted()上受保护的覆盖无效
{
SetInitializer(新的CreateDatabaseOnlyIfNotExists());
RegisterAllAreas();
注册地址(RouteTable.Routes);
RegisterAllControllersIn(Assembly.getExecutionGassembly());
}
我尝试在我的操作中切换我的数据库初始值设定项,但我确实不确定,因为它应该已经初始化,我使用的方法是否正确:

        Database.SetInitializer(new AlwaysRecreateDatabase<CorpiqDb>());
        var bidon = _session.All<Admin>();
        Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>());
        bidon = _session.All<Admin>();
Database.SetInitializer(新的AlwaysCreateDatabase());
var bidon=_session.All();
SetInitializer(新的CreateDatabaseOnlyIfNotExists());
bidon=_session.All();

我真的不知道怎么做,谢谢你的帮助

好的,我找到了一个解决方案:

var dbContext = new CorpiqDb().Database ;
dbContext.Delete();
dbContext.Initialize();
dbContext.EnsureInitialized();
Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>());
var dbContext=new CorpiqDb().Database;
dbContext.Delete();
dbContext.Initialize();
dbContext.EnsureInitialized();
SetInitializer(新的CreateDatabaseOnlyIfNotExists());

这将删除我的数据库并创建一个反映最新型号的新数据库,我甚至可以为数据库添加一些测试数据。

感谢您发布答案。