Использование дополнительных данных на промежуточной таблице с NHibernate

Я работаю над проектом, который используется для ввода информации о продукте в документ. Один раздел имеет форму, которая может быть заполнена столько раз, сколько необходимо для конкретного продукта. Информация в этой форме будет доступна для совместного использования в нескольких связанных документах. Типичная ситуация «многие ко многим». Разница в том, что в промежуточной таблице я хочу сохранить конкретную информацию для этой записи формы для этого конкретного документа.

Вот некоторые определения таблиц, чтобы проиллюстрировать это:

Document(
  Id int identity(1,1),
  Name nvarchar(256)
)

Form(
  Id int identity(1,1),
  FormData nvarchar(max)
)

DocumentForms(
  DocumentId int,
  FormId int,
  DocumentFormNumber varchar(64)
)

И некоторые занятия:

public class Document{
  public int Id { get; protected set; }
  protected IList<Form> Forms { get; set; }
}

public class Form {
  public int Id { get; protected set; }
  public string DocumentFormNumber { get; set; }
  public string FormData { get; set; }
}

Есть ли способ создать сопоставление, которое поддерживает чтение дополнительных данных при чтении форм как часть связи «многие ко многим» с Document? Нужно ли использовать хранимую процедуру при загрузке данных с отношением «многие ко многим»? Мне все еще нужно иметь возможность загружать объекты Form, чтобы они не были частью документа, но как только они будут добавлены в документ, мне нужно, чтобы у них был номер, который генерируется на основе некоторых простых правил. Но это число, очевидно, зависит от конкретного документа. Таким образом, хотя следующий документ может использовать те же данные формы, ему нужен новый номер.

Любые предложения о том, как этого можно достичь?