Ошибка, которую я получаю, является обычной, но в сценарии я не нашел ответов, которые бы соответствовали моему сценарию:
Объекты:
Учащийся школьного учителя
Отображения:
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);
}
Что происходит здесь, так это то, что, когда я сохраняю «студент», я получаю страшный «удаленный объект, который будет спасен ошибкой каскада».
Как всегда, любая помощьс благодарностью.