我已經將Int類型的Id屬性從Int更改爲Guid,沒有其他實體引用該Id,並且我已從數據庫手動刪除該實體的所有記錄,我生成的遷移類看起來像這樣:實體框架更改Id類型
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));
}
當我運行update-database命令我得到這個錯誤:
對象 'PK_dbo.RoutineExercises' 是依賴於列 'RoutineExerciseId'。 ALTER TABLE ALTER COLUMN RoutineExerciseId失敗,因爲一個或多個對象訪問此列。
而且我FluentAPI配置是這樣的:
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);
我怎樣才能解決這個不放棄整個數據庫?