Я не думаю, что есть способ сопоставить ваш индексатор напрямую, но вы можете выставить базовый тип словаря и сопоставить его вместо этого.
Если вы не хотите предоставлять словарь общедоступным, вы можетесопоставьте его как частную собственность вместо , объясненного здесь .Для отображения словаря, см. Здесь .
Примером может быть
HasMany<object>(Reveal.Member<AttributeSet>("Cache"))
.KeyColumn("AttributeSetId")
.AsMap<string>(idx => idx.Column("Index"), elem => elem.Column("Value"))
.Access.CamelCaseField(Prefix.Underscore)
Отображение типа объекта в словаре может быть интересно, я не знаю, еслиNHibernate сможет преобразовать его непосредственно в базовый тип базы данных.