Это было задано 4 месяца назад, поэтому я не знаю, если вы все еще заинтересованы: -)
Концептуальная причина отсутствия поддержки двунаправленных индексированных ассоциаций проста: индекс имеет смысл только в одном направлении.
Например, рассмотрим класс Invoice
со свойством Lines
типа IList<Line>
.
Установка line.Invoice = anInvoice
не имеет смысла, так как невозможно определить, каким должен быть индекс списка.
Имейте в виду, что NHibernate "видит" двунаправленные отношения как два разных отношения (отсюда необходимость inverse="true"
на стороне, не отвечающей за ее поддержание)
Обходной путь - это именно то, что вы предложили: свойство Position / Index / etc в дочернем классе.