sql >> Base de Datos >  >> RDS >> Sqlserver

Entity Framework Database.SetInitializer simplemente no funciona

La base de datos solo se creará cuando realmente use el contexto.

Si ha anulado el método Seed en su inicializador de la siguiente manera:

protected override void Seed(MyContext context){...}

El código semilla solo se ejecutará cuando utilice una instancia de MyContext.

Es por eso que funciona cuando usas

var ctx = new MyContext();
ctx.Database.Initialize(true);

Siempre puede forzarlo a crear usando su contexto en el método Application_Start() en Global.asax.cs como:

        System.Data.Entity.Database.SetInitializer(new MyInitializer());

        MyContext db = new MyContext();
        db.Database.Initialize(true);
        //or even something like db.Users.Count();

O se creará más adelante cuando use su contexto. Podría haber parecido que dejó de funcionar porque eliminó algún código que usaría el contexto en el inicio de la aplicación.