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 を使用していることに注意してください。

ただし、アプリケーションの起動時にこのドロップ作成を実行したい!

どうすればいいですか?

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 に答える