MigrateDatabaseToLatestVersion sin ejecutar el método Seed ()

Estoy tratando de generar automáticamente mi base de datos si no existe y ejecutar elSeed() Método para rellenar los datos. En mi constructor Contexto de base de datos tengo esto:

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

Esto funciona muy bien, mi base de datos se crea automáticamente con todas las tablas que quiero, pero parece que elSeed() no se llama al método, mi base de datos está vacía. Esta es mi clase

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);
    }
}

Cuando corroUpdate-Database en elNuget consola los datos se rellenan después de la creación de la base de datos, pero conMigrateDatabaseToLatestVersion elSeed() No se llama al método

¿Qué puede estar pasando? Traté de ejecutar manualmente las migraciones tomadas deaquí:

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

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

Pero tampoco funciona.

EDITAR:

Ok, después de más pruebas encontré que elSeed() El método se ejecuta pero solo cuando la base de datos ya existe, es decir, en la primera ejecución cuando la base de datos se crea por primera vezSeed() El método no se ejecuta, pero cuando ejecuto mi aplicación por segunda vezSeed() se ejecuta. También tuve que agregarcontext.SaveChanges() para que funcione (gracias a @DavidG en los comentarios):

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);
    }

Entonces, tal vez pueda llamar manualmenteSeed() dentroConfiguration() y realice algunas comprobaciones para evitar agregar datos duplicados o modificar datos que ya existen.

Respuestas a la pregunta(1)

Su respuesta a la pregunta