假设我们有一个SPACE_SHIP和WEAPON对象。 SPACE_SHIP有一个主要的WEAPON和一个次要WEAPON的集合。我想切换初级和其中一个辅助WEAPON,我该怎么做?
如果我这样做:
发生NHibernate错误......我该怎么办?
上下文:NHibernate 1.2,C#3.5
答案 0 :(得分:1)
你最有可能用cascade="all-delete-orphan"
映射它。这样做时,NH会删除已从集合中删除的所有实例。如果你试图在另一个集合中使用该实例,那么NH会抱怨。
NH没有实现“持久性垃圾收集”来自动检测哪些实例被引用而哪些实例未被引用。这将是一个非常强大的性能影响。 “delete-orphan”是它的简化版本,它适用于许多简单的情况,但是如果你移动实例则不起作用。