Es wurde ein Fehler für die Warnung
'Microsoft.EntityFrameworkCore.Migrations.PendingModelChangesWarning' generiert:
Das Modell für den Kontext „ContextoDb“ weist ausstehende Änderungen auf. Fügen Sie eine neue
Migration hinzu, bevor Sie die Datenbank aktualisieren. Diese Ausnahme kann
unterdrückt oder protokolliert werden, indem die Ereignis-ID
'RelationalEventId.PendingModelChangesWarning' an die Methode
'ConfigureWarnings' in 'DbContext.OnConfiguring' oder
'AddDbContext' übergeben wird.< /p>
Als Erstes habe ich einfach versucht, meine letzte Migration rückgängig zu machen, bei der nur einige Seeder-Daten hinzugefügt wurden Die nun erstellte IdentityRole-Tabelle, die über den Identity.EntityFrameworkCore automatisch generiert wird, migrierte zuerst die Tabelle mit dem Kontext und allem, und dann wurde mir klar, dass ich einige Seeder-Daten benötigte, um so zu arbeiten, wie ich es wollte die Controller.
Also habe ich gerade hinzugefügt:
Code: Select all
var roles = new List
{
new IdentityRole
{
Name = "Admin",
NormalizedName = "ADMIN"
},
new IdentityRole
{
Name = "User",
NormalizedName = "USER"
}
};
modelBuilder.Entity().HasData(roles);
Einige Dinge, die ich versucht habe, waren, einfach alle meine Migrationen rückgängig zu machen und den Migrationsordner zu löschen.
Als das nicht funktionierte, habe ich es mit einer völlig anderen Datenbank versucht. Ich denke, es könnte etwas mit dem Versuch zu tun haben, einen Seeder zu implementieren, nachdem die Tabelle erstellt wurde.
Aber auch das hat nicht geklappt. Jetzt verstehe ich, dass der Fehler besagt, dass ich diese Warnung ignorieren könnte. Was ich getan habe, indem ich Folgendes hinzugefügt habe:
Code: Select all
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.ConfigureWarnings(warnings =>
warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
}
Ich bin mir nicht ganz sicher, ob dies der richtige Weg ist, damit umzugehen, oder welche Auswirkungen oder Komplikationen dies haben wird Dadurch muss ich in Zukunft Abhilfe schaffen.
Wenn also jemand weiß, warum dieser Fehler angezeigt wird. Ich würde mich über jede Möglichkeit, das Problem sicherer zu beheben, sehr freuen.
Wenn es etwas bedeutet – das ist der vollständige AppContext:
Code: Select all
public class ContextoDb : IdentityDbContext
{
public ContextoDb(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity
()
.HasIndex(p => p.Carnet).IsUnique();
modelBuilder.Entity()
.HasData(
new Persona
{
Id = 1,
Nombre = "Ismael",
Apellido = "Moron",
Carnet = "12597382"
}
);
modelBuilder.Entity().HasData(
new Hijo
{
Id = 1,
Nombre = "Poto",
FechaNacimiento = DateOnly.Parse("2020-10-21"),
PersonaId = 1
}
);
var roles = new List
{
new IdentityRole
{
Name = "Admin",
NormalizedName = "ADMIN"
},
new IdentityRole
{
Name = "User",
NormalizedName = "USER"
}
};
modelBuilder.Entity().HasData(roles);
base.OnModelCreating(modelBuilder);
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.ConfigureWarnings(warnings =>
warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
}
public DbSet Personas { get; set; }
public DbSet Hijos { get; set; }
}