Ich habe den Typ der Id-Eigenschaft von Int in Guid geändert, keine anderen Entitäten verweisen auf diese ID und ich habe alle Datensätze dieser Entität manuell aus der Datenbank gelöscht. Meine generierte Migrationsklasse sieht folgendermaßen aus:Änderung des Entitätsframeworks ID-Typ
public override void Up()
{
AlterColumn("dbo.RoutineExercises", "RoutineExerciseId", c => c.Guid(nullable: false));
}
public override void Down()
{
AlterColumn("dbo.RoutineExercises", "RoutineExerciseId", c => c.Int(nullable: false, identity: true));
}
Und ich bin immer diese Fehlermeldung, wenn ich update-Datenbank Befehl ausführen:
Das Objekt 'PK_dbo.RoutineExercises' ist abhängig von der Spalte 'RoutineExerciseId'. ALTER TABLE ALTER COLUMN RoutineExerciseId ist fehlgeschlagen, weil ein oder mehrere Objekte auf diese Spalte zugreifen.
Und meine FluentAPI Konfiguration sieht wie folgt aus:
modelBuilder.Entity<RoutineExercise>().HasKey(r => r.RoutineExerciseId);
modelBuilder.Entity<RoutineExercise>()
.HasRequired(r => r.Exercise)
.WithMany()
.HasForeignKey(r => r.ExerciseId)
.WillCascadeOnDelete(true);
modelBuilder.Entity<RoutineExercise>()
.HasRequired(r => r.Routine)
.WithMany()
.HasForeignKey(r => r.RoutineId)
.WillCascadeOnDelete(true);
Wie kann ich dieses Problem beheben, ohne die gesamte Datenbank zu fallen?