Ist es möglich, dass meine ASP Core Web API sicherstellt, dass die DB mit EF Core auf die letzte Migration migriert wird? Ich weiß, dass dies über die Befehlszeile erfolgen kann, aber ich möchte es programmatisch machen.ASP - Core Migrieren von EF Core SQL DB beim Start
aktualisieren
Basierend auf der Antwort von Janshair Khan ich mit dieser Hilfsklasse kam:
using Microsoft.AspNetCore.Builder;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MyWebApi.Models;
namespace MyWebApi
{
public static class DataSeeder
{
public static void SeedData(this IApplicationBuilder app)
{
var context = app.ApplicationServices.GetService<MyContext>();
if (!context.Database.EnsureCreated())
context.Database.Migrate();
}
}
}
Sie können dies Anruf aus der Configure
Methode in Ihrer Startup.cs
wie folgt aus:
app.SeedData();
noch nicht getan, um es auszuführen mit der nächsten Version implementiert werden soll. Sie können die Workaround verwenden, die unten von Khan veröffentlicht wird. –
Siehe die Antworten unten. Sie sollten entweder EnsureCreated oder Migrate verwenden. Nicht beide. –