我有以下实体:NHibernate的
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>
像我想和测试它。
好的,那么欺骗我的是它实际上是清除引用(通过FK)而不是NHibernate的数据库?这似乎是我看到的行为的合理解释。 – kaa 2010-09-09 07:22:10