0

我已经实现了我自己的Database Initializer继承自DropDatabaseIfModelChanges<>()

所以:

public class MyDatabaseInitializer : DropDatabaseIfModelChanges<MyDatabaseContext>()

我在我的Global.asax文件中使用它并执行以下操作:

protect void Application_Start()
{
    // some normal app start stuff

    Database.SetInitializer(new MyDatabaseInitializer());

    // create ninject kernel and then set DependencyResolver here
}

现在只是设置了一个Initializer我实际上想要执行void InitializeDatabase(TContext context);它然后删除并创建数据库的位置。

当它到达执行数据库请求的行时,它会这样做,例如:

_repository.MyTable.ToList()

请注意,我使用的是存储库模式和 ninject。

但是我希望在应用程序启动时执行这个 drop create!

我该怎么做?

4

1 回答 1

0

好的,所以我钉了它。

我的IDatabaseInitializer实现如下所示:

public class MyDatabaseInitializer : DropDatabaseIfModelChanges<MyDatabaseContext>()
{
    public MyDatabaseInitializer() : base ()
    {
        var context = new MyDatabaseContext();

        Seed(context);

        base.InitializeDatabase(context);

        // any other things I need to do here with the database
    }

    public override Seed(UXContext context)
    {
        // do my seed data here
    }
} 
于 2013-07-31T17:55:38.633 回答