Teacher レコードを削除しようとすると、次のエラーが表示されます。
DELETE ステートメントは、REFERENCE 制約 "FK_dbo.Department_dbo.Teacher_TeacherID" と競合しました。データベース「MySchoolBook」、テーブル「dbo.Department」、列「TeacherID」で競合が発生しました。ステートメントは終了されました。
私の教師モデル:
public class Teacher : Person
{
[Key]
public Guid TeacherID { get; set; }
public Guid? AccountID { get; set; }
public virtual ICollection<Classroom> Classrooms { get; set; }
public virtual Office Office { get; set; }
}
私の部門モデル:
public class Department
{
[Key]
public Guid DepartmentID { get; set; }
[Display(Name = "Administrator")]
public Guid? TeacherID { get; set; }
[Required(ErrorMessage = "Name is required.")]
public String Name { get; set; }
public virtual Teacher Administrator { get; set; }
public virtual ICollection<Classroom> Classrooms { get; set; }
}
私のDbContext:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Department>()
.HasOptional(d => d.Administrator);
}
編集:
私がやりたいことは、部門の TeacherID 列が NULL になるように、教師のレコードを削除することです。