NHibernate:集合中的空值

本文关键字:空值 集合 NHibernate | 更新日期: 2023-09-27 18:10:16

我有一个有序的Position字段的对象集合,当检索Nhibernate集合时,在索引之间的间隙放置null[例如:0-object, 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根据Position字段排序我的列表,而不考虑间隙

NHibernate:集合中的空值

这是我认为无法关闭的NHibernate特性。如果索引列表中有漏洞,那么NHibernate会在漏洞的位置插入null。这正是你所看到的行为。

正如Ayende在他的博客文章中建议的那样,您的应用程序应该确保每当索引列表中有漏洞时,如果这是您想要的行为,则重新计算index属性以确保没有漏洞。NHibernate不能为你做这些。