ASP.NET Core RC2-Seed-Datenbank

Mein Problem ist, dass ich versuche, eine Entity Framework Core-Datenbank mit Daten zu erstellen, und in meinem Kopf zeigt der folgende Code die Arbeit. Ich habe festgestellt, dass dies nicht im @ aufgerufen werden sollApplicationDbContext -Konstruktor und sollte von der @ aufgerufen werdstartup aber ich bin mir nicht sicher, wie ich das machen soll.

EDIT: Basierend auf der von Ketrex bereitgestellten Lösung lautet meine Lösung wie folgt:

Startup.cs:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        ... 

        app.ApplicationServices.GetRequiredService<ApplicationDbContext>().Seed();
    }

Seed extension:

public static class DbContextExtensions
{
    public static void Seed(this ApplicationDbContext context)
    {
        // Perform database delete and create
        context.Database.EnsureDeleted();
        context.Database.EnsureCreated();

        // Perform seed operations
        AddCountries(context);
        AddAreas(context);
        AddGrades(context);
        AddCrags(context);
        AddClimbs(context);

        // Save changes and release resources
        context.SaveChanges();
        context.Dispose();
    }

    private static void AddCountries(ApplicationDbContext context)
    {
        context.AddRange(
            new Country { Name = "England", Code = "En" },
            new Country { Name = "France", Code = "Fr" }
            );
    }

    ...
}

Ich verstehe, dass das Seeding einer Datenbank ganz oben auf der Prioritätenliste für Entity Framework steht, aber es wäre großartig, wenn es eine Dokumentation dazu gäbe, wie diese einfache Aufgabe gelöst werden kann, oder zumindest eine vorübergehende Problemumgehung. Wenn jemand eine Anleitung dazu geben kann, wäre er sehr dankbar. Ich fühle mich einer Lösung nahe, kann sie aber nicht zusammenfügen.

ielen Dank für jede Hilf

Antworten auf die Frage(6)

Ihre Antwort auf die Frage