У меня был тот же вопрос и я прочитал код. Я нашел следующее:
(NH 3.0, Cfg \ Collection Binder.cs, # 548)
private void BindCollectionIndex(/*...*/)
{
// ...
if (listMapping.ListIndex != null)
{
iv = new SimpleValue(model.CollectionTable);
new ValuePropertyBinder(iv, Mappings).BindSimpleValue(
listMapping.ListIndex,
IndexedCollection.DefaultIndexColumnName,
model.IsOneToMany);
}
else if (listMapping.Index != null)
{
iv = new SimpleValue(model.CollectionTable);
listMapping.Index.type = NHibernateUtil.Int32.Name;
new ValuePropertyBinder(iv, Mappings).BindSimpleValue(
listMapping.Index,
IndexedCollection.DefaultIndexColumnName,
model.IsOneToMany);
}
// ...
}
Что для меня значит:
- Это в основном то же самое.
list-index
перезаписывает index
- Тип
index
установлен на int
. Поэтому вам пришлось проверить, что на самом деле происходит при использовании другого типа в файле сопоставления.
list-index
поддерживает base
, чтобы сообщить ему, с какого индекса начинать. (Это найдено где-то еще)