NHibernate:集合中的null值

时间:2015-08-27 14:41:01

标签: c# nhibernate

我有一个带有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根据位置字段对我的列表进行排序,而不考虑间隙。

1 个答案:

答案 0 :(得分:1)

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

正如Ayende在his blog post中所建议的,您的应用程序应该确保每当索引列表中存在漏洞时,都会重新计算索引属性,以确保没有漏洞(如果这是您想要的行为)。 NHibernate无法为您做到这一点。