我的错误是司空见惯的,但我没有找到任何回答我的情况:
实体:
School Teacher Student
绘图:
School: mapping.HasMany(x => x.Students).Cascade.AllDeleteOrphan();
Student:
mapping.References(x => x.Teacher).Not.Nullable().Cascade.SaveUpdate();
mapping.References(x => x.School).Not.Nullable().Cascade.SaveUpdate();
Teacher:
mapping.References(x => x.School).Not.Nullable().Cascade.SaveUpdate();
mapping.HasMany(x => x.Students).Cascade.All().Inverse();
假设:学生与没有其他学生或教师的学校有联系。 如果我想将学生与另一所学校联系起来,我就要删除孤儿学校。
if (oldSchool.Students.Count == 1 && oldSchool.Teachers.Count == 0)
{
//delete it
//oldSchool.Students.Remove(student);
student.School = null;
_schoolRepository.Delete(oldSchool);
}
这里发生的情况是,当我拯救“智者”时,我获得的“被删除的物体将因“cade”错误而消失。
一如既往,任何帮助都受到高度赞赏。