我正在使用MigrateDatabaseToLatestVersion
初始化程序和DbMigrationConfiguration
中的Seed
方法:
public sealed class Configuration : DbMigrationsConfiguration<Context>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
ContextKey = "...";
}
protected override void Seed(Context context)
{
context.MyEntities.AddOrUpdate(p => p.Name, new[]
{
new MyEntity { Name = "Name 1" },
});
context.SaveChanges();
}
}
自动迁移功能对于现有的数据库可以正常工作。但是,当没有现有的数据库(*.mdf、LocalDb)时,在第一次应用程序启动时,初始化器仅调用DbMigration
中的Up()
方法,而不包括Seed
方法。只有在应用程序重新启动后才会调用Seed
方法。
如果在第一次启动之前手动调用Upgrade-Database
,它将创建数据库,并在第一次运行时调用Seed
方法。
如何在没有现有数据库时,在应用程序启动时自动初始化数据库并添加种子数据?