C# NHibernate:集合中的空值
我有一个带有C# NHibernate:集合中的空值,c#,nhibernate,C#,Nhibernate,我有一个带有位置字段的有序对象集合,当检索集合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"
位置字段的有序对象集合,当检索集合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根据位置字段对我的列表进行排序,而不考虑间隙。这是NHibernate的功能,我认为无法关闭。如果索引列表中有孔,则NHibernate会在孔的位置插入null。这正是你所看到的行为
正如中的Ayende所建议的,应用程序应该确保每当索引列表中存在漏洞时,都会重新计算index属性,以确保没有漏洞(如果这是您想要的行为)。NHibernate不能为你这么做 我在网上几乎找不到这方面的文档。2021年的情况似乎仍然如此,令人非常恼火。