2

我有一个“已经被教导”将一些初始数据播种到数据库中的一个InDocDbContext: DbContext和一个。InDocDbContextInitializer: 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 回答