Hola a todos, cuando se trabaja con Entity Framework Code First, y definimos el inicializador de la base de datos, dicha creación e inicialización de la base de datos no se da hasta que accedemos al contexto, por ejemplo al realizar alguna consulta, insertar algún dato, etc.

A mi personalmente me gusta más que la creación e inicialización no espere tanto y que ese proceso ocurra cuando se inicia la aplicación, realizar dicho cambio es bastante sencillo, simplemente cuando se establece el llamado al inicializador de la base lo forzamos a que ejecute el inicializador registrado, en resumen el código sería:


public class DatabaseInitializer
{
    public static void Initializer()
    {
        Database.SetInitializer<AppContext>(new AppInitializer());
        AppContext context = new AppContext();
        context.Database.Initialize(true);
    }
}

En el código anterior AppContext hace referencia a la clase que hereda de DbContext y va a ser nuestro contexto, y con la línea context.Database.Initialize(true) lo que hacemos es ejecutar el inicializador registrado para el contexto.

Espero les sea de utilidad, y no te olvides de compartir!