У меня есть следующие объекты:
namespace NhLists {
public class Lesson {
public virtual int Id { get; set; }
public virtual string Title { get; set; }
}
public class Module {
public virtual int Id { get; set; }
public virtual IList<Lesson> Lessons { get; set; }
public Module() {
Lessons = new List<Lesson>();
}
}
}
И следующие сопоставления:
<class name="Module" table="Modules">
<id name="Id">
<generator class="identity"/>
</id>
<list name="Lessons" table="ModuleToLesson"
cascade="save-update">
<key column="moduleId"/>
<index column="position"/>
<many-to-many
column="lessonId"
class="NhLists.Lesson, NhLists"/>
</list>
</class>
<class name="Lesson" table="Lessons">
<id name="Id">
<generator class="identity"/>
</id>
<property name="Title">
<column name="Title" length="16" not-null="true" />
</property>
</class>
Когда я удаляю урок по session.Delete(lesson)
, можно ли в любом случае разрешить NHibernate автоматически обновлять ассоциацию в Module.Lessons
, чтобы удалить запись из набора? Или я вынужден пройти через все модули и найти урок и удалить его вручную?
Редактировать: Исправлены ICollection
и <set>
в сопоставлениях с IList<>
и <list>
, как я хочу, и их проверка.