2

私には、データベースに初期データをシードするための「教えられた」とがありますInDocDbContext: DbContextInDocDbContextInitializer: DropCreateIfModelChangesInitializer

ASP.NETアプリケーションのglobal.asaxのApp_Startメソッドに初期化コードを入れないように最善を尽くしています。

NinjectをIOCコンテナとして使用しています。初期化ロジックをNinjectModule内に配置したり、コンテキストで非表示にしたりして、global.asaxコードに移動する必要がないようにすることはできますか?

4

1 に答える 1

2

これをコンテキストの静的コンストラクターに追加できます。

public InDocDbContext : DbContext
{
    static InDocDbContext() 
    {
        Database.SetInitializer<InDocDbContext>(new InDocDbContextInitializer());
    }
}

EF 4.3以降を使用している場合は、web.configファイルで初期化子を定義することもできます。元の4.3のドキュメントまたは現在のバージョンのドキュメントを参照してください。

于 2012-07-16T08:56:10.147 に答える