NHibernate:将实体添加到延迟加载的多对多关系

Jon*_*yMC 6 nhibernate many-to-many lazy-loading

我们有一个多对多集合的实体映射为一个延迟加载的包.当我们加载实体时,集合未加载 - 很棒.现在我们要为该集合添加一个新实体.一旦我们这样做,集合就会被加载.

我们如何在不加载整个集合的情况下添加新实体(集合很大)?

Jam*_*s L 1

出现此行为的原因是,当您向集合添加()新项目时,您正在引用集合。该引用会触发延迟加载。

我发现最好避免 NHibernate 中显式的多对多映射。我通常使用与第三个实体的两个一对多关联,其工作方式类似于链接表。确保将关系的多方设置为 inverse="true"。然后就可以直接执行:

session.Save(new LinkEntity(leftSideInstanceOrProxy, rightSideInstanceOrProxy);

另一个好处是,通常有有关您要保存的关系的信息,这些信息也可以放入新实体中。