我正在使用NHibernate和QueryOver。我的聚合有一个名为父实体的聚合根和两种子实体。我有子实体是我的聚合的一部分,而 QUChild 实体不是我的聚合的一部分,并且仅用于 QueryOver 中的 JOIN 子句。
如何区分映射文件中的两个子实体?
<class name="Parent" table="Parent" schema="dbo">
<bag name="Childs" inverse="true" cascade="all-delete-orphan" />
<key>
</key>
<one-to-many class="Child" />
</bag>
<bag name="QUChilds" /> <!-- which attribute must be set to do nothing? -->
<key>
</key>
<one-to-many class="QUChild" />
</bag>
</class>
好吧,什么都不做。NHibernate 不会急于加载,也不会延迟加载它,如果您不从加载的父实体访问它。
默认级联是 none
,所以只需将其保留为映射即可。(但我会添加inverse="true"
以防万一代码更改导致稍后在该集合中添加一些子项。