MigrateDatabaseToLatestVersion sem execução do método Seed ()

Estou tentando gerar automaticamente meu banco de dados se ele não existir e executar oSeed() método para preencher os dados. No meu construtor Database Context, tenho o seguinte:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDBContext, Configuration>());

Isso funciona muito bem, meu banco de dados é criado automaticamente com todas as tabelas que eu quiser, mas parece que oSeed() método não está sendo chamado, meu banco de dados está vazio. Esta é a minha turma:

internal sealed class Configuration : DbMigrationsConfiguration<Context.MyDBContext>
{

    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(Context.MyDBContext context)
    {
        context.Users.AddOrUpdate(
            new Entities.User() { Email = "[email protected]", Password = "", Language = "en", CreatedDate = DateTime.Now }
        );

        base.Seed(context);
    }
}

Quando eu corroUpdate-Database noNuget console, os dados são preenchidos após a criação do banco de dados, mas comMigrateDatabaseToLatestVersion aSeed() O método não é chamado.

O que pode estar acontecendo? Tentei executar migrações manualmente, conforme retirado deaqui:

var configuration = new MyDbContextConfiguration();
configuration.TargetDatabase = new DbConnectionInfo(
    database.ConnectionString, database.ProviderName);

var migrator = new DbMigrator(configuration);
migrator.Update();

Mas também não funciona.

EDITAR:

Ok, depois de mais alguns testes, descobri que oSeed() O método é executado, mas somente quando o banco de dados já existe, ou seja, na primeira execução, quando o banco de dados é criado pela primeira vez, oSeed() O método não é executado, mas quando executo meu aplicativo pela segunda vezSeed() é executado. Eu também tive que adicionarcontext.SaveChanges() para que funcione (graças a @DavidG nos comentários):

protected override void Seed(Context.MyDBContext context)
    {
        context.Users.AddOrUpdate(
            new Entities.User() { Email = "[email protected]", Password = "", Language = "en", CreatedDate = DateTime.Now }
        );

        context.SaveChanges();
        base.Seed(context);
    }

Talvez eu possa ligar manualmenteSeed() dentroConfiguration() e faça algumas verificações para evitar adicionar dados duplicados ou modificar dados que já existem.

questionAnswers(1)

yourAnswerToTheQuestion