我正在使用Entity Framework 6.1,并希望通过配置文件设置初始化。同时,当配置文件中的设置是丢弃并(重新)创建数据库的设置时,我想运行种子方法。
除非我弄错了,否则只有在通过代码设置初始化程序时才会调用Seed
方法。有什么方法可以指定在配置文件(或其他)中运行什么初始化程序,以便在配置文件对要删除和创建的数据库进行分类时运行Seed
方法?
如果没有,建议使用其他选项?
答案 0 :(得分:1)
您可以将其放在DbContext
构造函数中,如下所示。
public class AppContext : DbContext
{
public AppContext()
{
if (ConfigurationManager.AppSettings["Initializer"] == "DropAlways")
{
Database.SetInitializer(new DropCreateDatabaseAlways<AppContext>());
}
else if (ConfigurationManager.AppSettings["Initializer"] == "DropIfModelChanges")
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<AppContext>());
}
else
{
Database.SetInitializer(new CreateDatabaseIfNotExists<AppContext>());
}
}
}