sql >> Databáze >  >> RDS >> Sqlserver

Entity Framework Database.SetInitializer prostě nefunguje

Databáze bude vytvořena pouze tehdy, když skutečně použijete kontext.

Pokud jste ve svém inicializátoru přepsali metodu Seed takto:

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

Seed kód se spustí, pouze když použijete instanci MyContext.

Proto to funguje, když používáte

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

Vždy můžete vynutit jeho vytvoření pomocí svého kontextu v metodě Application_Start() v Global.asax.cs jako:

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

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

Nebo bude vytvořen později, když použijete svůj kontext. Mohlo to vypadat, že přestalo fungovat, protože jste odstranili nějaký kód, který by při spouštění aplikace používal kontext.



  1. Načtěte VÍCE ŘÁDKŮ a ULOŽTE v 1 PROMĚNNÉ – POSTUP ULOŽENÝ ORACLE

  2. Odstranit řádky z tabulky, kromě zadaného počtu (omezení počtu řádků)

  3. JSON_EXTRACT() – Vrácení dat z dokumentu JSON v MySQL

  4. PostgreSQL dotaz je pomalý při použití NOT IN