Текущий синтаксис FluentNHibernate для этого выглядит следующим образом:
HasManyToMany(x => x.Screenshots)
.AsList(i => i.Column("`Index`"));
По умолчанию для столбца индекса задано значение Индекс, но это зарезервированное слово в SQL Server (и, возможно, в других базах данных), поэтому вы должны заключить его в кавычки.
Кроме того, я бы рекомендовал не устанавливать каскад этих отношений. Рассмотрим следующий код:
x.Screenshots.Remove(s);
session.SaveOrUpdate(x);
NHibernate правильно удалит строки из таблицы ссылок даже без указания каскада. Однако, если вы укажете AllDeleteOrphan, NHibernate удалит строку из таблицы ссылок, а также удалит Resource s
. Я сомневаюсь, что вы хотите именно такого поведения в отношениях «многие ко многим».