Mit NHibernate zusätzliche Daten zur Zwischentabelle verwenden

Ich arbeite an einem Projekt, mit dem Informationen zu einem Produkt in ein Dokument eingegeben werden. Ein Abschnitt enthält ein Formular, das für ein bestimmtes Produkt so oft wie nötig ausgefüllt werden kann. Die Informationen in diesem Formular können dann in mehreren zugehörigen Dokumenten geteilt werden. Eine typische Situation von vielen zu vielen. Der Unterschied besteht darin, dass ich in der Zwischentabelle bestimmte Informationen für diesen Formulareintrag für dieses bestimmte Dokument speichern möchte.

Hier sind einige Tabellendefinitionen, um den Punkt zu veranschaulichen:

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)
)

Und einige Klassen:

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; }
}

Gibt es eine Möglichkeit, eine Zuordnung zu erstellen, die das Lesen der zusätzlichen Daten beim Lesen von Formularen als Teil der Viele-zu-Viele-Beziehung mit Document unterstützt? Muss ich eine gespeicherte Prozedur verwenden, wenn ich Daten mit der Viele-zu-Viele-Beziehung lade? Ich muss weiterhin in der Lage sein, die Formularobjekte zu laden, ohne dass sie Teil eines Dokuments sind. Sobald sie dem Dokument hinzugefügt wurden, müssen sie eine Nummer haben, die auf der Grundlage einiger einfacher Regeln generiert wird. Aber diese Nummer ist offensichtlich dokumentenspezifisch. Das nächste Dokument verwendet möglicherweise dieselben Formulardaten, benötigt jedoch eine neue Nummer.

Haben Sie Vorschläge, wie dies erreicht werden kann?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage