Я использую инициализатор 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
будет вызван при первом запуске.
Как автоматически инициализировать базу данных с помощью данных Seed при запуске приложения, когда существующей базы данных нет?