我有一个带有Position
字段的有序对象集合,当检索集合Nhibernate
时,null
会在间隙之间留出空白[例如: 0对象,1-null,2-null,3-object ...]
我有这个映射:
<list name="CheckListItems" lazy="true" inverse="true"
batch-size="25" cascade="all-delete-orphan">
<key column="TopicID" />
<index column="Position" />
<one-to-many class="CheckListItem" />
</list>
我希望NHibernate根据位置字段对我的列表进行排序,而不考虑间隙。
答案 0 :(得分:1)
这是我认为无法关闭的NHibernate功能。如果索引列表中有空洞,那么NHibernate会在空洞的位置插入null。这正是你所看到的行为。
正如Ayende在his blog post中所建议的,您的应用程序应该确保每当索引列表中存在漏洞时,都会重新计算索引属性,以确保没有漏洞(如果这是您想要的行为)。 NHibernate无法为您做到这一点。