Ошибка в Cascade: удаленный объект будет повторно сохранен каскадом

У меня есть проект, реализованный в NHibernate и использующий отложенную загрузку. { {1}} У меня есть два класса в этом проекте: Person и Family. Связь между этими двумя - это агрегация, это означает, что у Person есть список Person. Сопоставление:

  <class name="Person" table="Person_Person" >

    <id name="Id" type="Int64" unsaved-value="0">
      <generator class="native" />
    </id>

    <bag name="Families" inverse="true" table="Person_Family" cascade="all-delete-orphan" >
      <key column="Person_id_fk"/>
      <one-to-many class="Domain.Entities.Family,Domain.Entities"/>
    </bag>

  </class>

В В этом проекте я получаю человека по идентификатору, затем удаляю семью из семей человека.

Person person = SessionInstance.Get<Person>(id);
foreach (Family fam in person.Families)
    if (fam.Name == "Jaun")
        SessionInstance.Delete(fam);

Семья не удалена, потому что выдается исключение этим сообщением: удаленный объект будет повторно сохранен каскадом (удалить удаленный объект из ассоциаций) [Domain.Entities.Family # 167]

Как я могу удалить семью людей?

9
задан Ehsan 31 October 2011 в 13:48
поделиться