我正在使用MigrateDatabaseToLatestVersion
初始化程序和Seed
方法DbMigrationConfiguration
:
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)时,在第一个应用程序启动初始化程序时,只会调用没有的Up()
方法。方法仅在应用程序重新启动后调用。DbMigration
Seed
Seed
如果我在第一次启动之前手动调用Upgrade-Database
,它将创建数据库,并Seed
在第一次运行时调用方法。
当没有现有数据库时,如何在应用程序启动时使用种子数据自动初始化数据库?