我有InDocDbContext: DbContext
和InDocDbContextInitializer: DropCreateIfModelChangesInitializer
“已被教导”将一些初始数据植入数据库。
我正在尽力避免将初始化代码放入我的ASP.NET应用程序的global.asax中的App_Start方法中。
我使用Ninject作为IOC容器。我可以将初始化逻辑放在NinjectModule中或在上下文中隐藏它,这样我就不必将它带到global.asax代码了吗?
答案 0 :(得分:2)
您可以将它添加到上下文的静态构造函数中:
public InDocDbContext : DbContext
{
static InDocDbContext()
{
Database.SetInitializer<InDocDbContext>(new InDocDbContextInitializer());
}
}
如果您使用的是EF 4.3或更新版本,您还可以在web.config文件中定义初始化程序。请参阅original 4.3 documentation或documentation for the current version。