从列表中删除对象时,NHibernate不更新索引列

从列表中删除对象时,NHibernate不更新索引列,nhibernate,Nhibernate,我的A类有一个属性: public virtual IList<IVisitor> Visitors { get; set; } 将删除相应的行,但其他两行保留其idx 0和2 为什么NHibernate不将其更新为0和1 谢谢。索引不会更新,因为映射要求它们不会更新 从映射键中删除update=“false”。它也适用于索引。该索引被视为列表键的一部分 如果您使用的是旧版本的NHibernate,您还可以使用它。它似乎有效,谢谢!我只是从我需要的另一个列表中复制了update=“

我的A类有一个属性:

public virtual IList<IVisitor> Visitors { get; set; }
将删除相应的行,但其他两行保留其idx 0和2

为什么NHibernate不将其更新为0和1


谢谢。

索引不会更新,因为映射要求它们不会更新

从映射键中删除
update=“false”
。它也适用于
索引。该索引被视为列表键的一部分


如果您使用的是旧版本的NHibernate,您还可以使用它。

它似乎有效,谢谢!我只是从我需要的另一个列表中复制了update=“false”,但忘记了原因。所有测试都是绿色的,因此可能没有影响,可能是因为。
<list name="Visitors" table="Visitor" cascade="all-delete-orphan">
  <key column="SomeID" not-null="true" update="false" />
  <index column="idx" />
  <one-to-many class="Visitor" />
</list>
a.Visitors.RemoveAt( 1 );
a.Save(); // calls session.SaveOrUpdate( a );