2016-06-05 4 views
0

In der neuen ASP.NET Core RC2-Vorlage (ohne Datenbank am Back-End verfügbar), beim Versuch, einen Benutzer zu registrieren, wird der folgende Fehler zum Hinzufügen von Migrationen ausgelöst.ASP.NET Core RC2 Identity-Datenbank Schema Migrationen

enter image description here

Während in der Vergangenheit, es verwenden, um die Datenbank für uns ohne Zugabe erste Migration zu erzeugen, wenn wir die Anwendung auszuführen. Gibt es eine Möglichkeit, die Datenbank in ASP.NET Core RC2 ohne anfängliche Migration zu erstellen?

+2

Ist dieser Entity Framework-Kern? Sie benötigen Database.EnsureCreated(); https://wildermuth.com/2015/3/17/A_Look_at_ASP_NET_5_Part_3_-_EF7 –

Antwort

1

Für Testszenario erstellen Sie context.Database.EnsureCreatedAsync() irgendwo während des Startvorgangs verwenden können. Stellen Sie sicher, dass Sie this pattern (für den Moment) verwenden und nicht direkt in configure injizieren, um Probleme beim Start zu vermeiden.

Für zukünftige Referenz der Code-Abschnitt aus der MusicStore Beispielanwendung kopiert.

using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope()) 
{ 
    var db = serviceScope.ServiceProvider.GetService<MusicStoreContext>(); 

    if (await db.Database.EnsureCreatedAsync()) 
    { 
     await InsertTestData(serviceProvider); 
     if (createUsers) 
     { 
      await CreateAdminUser(serviceProvider); 
     } 
    } 
} 

weil zu diesem Zeitpunkt noch kein Gültigkeitsbereich vorhanden ist. Wenn Sie die Migrationen später anwenden möchten, können Sie context.Database.AsRelational().ApplyMigrations() (GitHub issue) verwenden

+0

Danke. Ich habe 'Database.EnsureCreated()' vermisst. –

-1

Ich denke, die einzige andere Alternative ist es, die Datenbank manuell, vielleicht mithilfe von SQL Server Object Explorer ...

Verwandte Themen