sql >> Database >  >> RDS >> Sqlserver

Entity Framework Database.SetInitializer werkt gewoon niet

De database wordt pas aangemaakt als je de context daadwerkelijk gebruikt.

Als je de Seed-methode in je initializer als volgt hebt overschreven:

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

De Seed-code wordt alleen uitgevoerd wanneer u een instantie van MyContext gebruikt.

Daarom werkt het als je

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

Je zou het altijd kunnen forceren om te creëren door je context te gebruiken in de Application_Start() methode in Global.asax.cs zoals:

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

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

Of het wordt later gemaakt wanneer u uw context gebruikt. Het leek erop dat het niet meer werkte omdat je code hebt verwijderd die de context zou gebruiken bij het opstarten van de applicatie.



  1. Vind N dichtstbijzijnde LineString vanaf een punt met behulp van MySQL Spatial Extensions

  2. Ondersteunt PLV8 het maken van http-aanroepen naar andere servers?

  3. hoe het standaardpad van mysql (in outfile) csv-pad te veranderen

  4. Oracle Stored Procedure inout parameter issue - Heb de oplossing - Typfout