在Ninject模块中初始化EF DbContext数据库

时间:2012-07-15 22:48:09

标签: asp.net entity-framework initialization global-asax dbcontext

我有InDocDbContext: DbContextInDocDbContextInitializer: DropCreateIfModelChangesInitializer“已被教导”将一些初始数据植入数据库。

我正在尽力避免将初始化代码放入我的ASP.NET应用程序的global.asax中的App_Start方法中。

我使用Ninject作为IOC容器。我可以将初始化逻辑放在NinjectModule中或在上下文中隐藏它,这样我就不必将它带到global.asax代码了吗?

1 个答案:

答案 0 :(得分:2)

您可以将它添加到上下文的静态构造函数中:

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

如果您使用的是EF 4.3或更新版本,您还可以在web.config文件中定义初始化程序。请参阅original 4.3 documentationdocumentation for the current version