sql >> Database teknologi >  >> RDS >> Sqlserver

Entity Framework Database.SetInitializer virker simpelthen ikke

Databasen oprettes først, når du rent faktisk bruger konteksten.

Hvis du har tilsidesat Seed-metoden i din initializer som følger:

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

Seed-koden kører kun, når du bruger en forekomst af MyContext.

Derfor virker det, når du bruger

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

Du kan altid tvinge den til at oprette ved at bruge din kontekst i Application_Start() metoden i Global.asax.cs som:

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

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

Eller det bliver oprettet senere, når du bruger din kontekst. Det kunne have set ud til, at det var holdt op med at fungere, fordi du fjernede noget kode, der ville bruge konteksten ved opstart af applikationen.



  1. WHERE-klausulen giver et andet resultat, uanset om det er i underforespørgsel eller ej

  2. Hvordan vælger jeg betinget et felt fra en af ​​to tabeller?

  3. Oracle SQL Auto Generated Identity Primary Key

  4. MySQL Relationel Division