2016-05-25 4 views
1

Ich habe 3 Tabellen: Workspace mit PK IdWorkspace und anderen Spalten, Sprache mit PK IdLanguage und anderen Spalten und Join Tabelle WorkspaceFooter mit mehreren PK (IdWorkspace FK und IdLanguage FK) und extracolumn Zeichenfolge Denomination. Ich kann keinen Weg finden, diese in Nhibernate zu kartieren, ein Weg, der funktioniert.NHibernate Map Join Tabelle mit extra Spalte

Wie soll ich in die .hbm.xml-Dateien schreiben? Was sollte ich in Workspace zuordnen? Eine Sammlung, eine Liste von WorkspaceFooter etc.?

Bitte beachten Sie, dass aus irgendeinem Grund die Beziehung in Workspace, die auf WorkspaceFooter verweist, inverse = "true" sein muss. Ein Update in Workspace muss auch ein Update in WorkspaceFooter erzwingen.

Vielen Dank im Voraus.

Antwort

0

Sie müssen klar sein:

  • das Klassenmodell Sie (abgeleitet von der Business-Logik, nicht nur die Datenbankmodell) müssen
  • Egal, ob Sie wirklich eine bidirektionale Beziehung brauchen

Sie könnten:

  • Karte als eine unabhängige Einheit in einer Liste (das ist die Lösung mit den meisten Management-Code erforderlich),
  • Karte es als ein zusammengesetztes Element mit dem Nennwert und eine viele-zu-eins zu der Sprache. Es verwendet auch eine bestimmte Klasse in C# dafür. Wahrscheinlich die einfachste Lösung.
  • Karte als eine Karte (Wörterbuch in C#), wo der Nennwert ist der Schlüssel (vorausgesetzt, es ist einzigartig innerhalb des gleichen Arbeitsbereich und eine typische Art und Weise Zugriff auf die Sprache),
  • wahrscheinlich können Sie es als Liste zuordnen und verwenden Sie Filter, um nur auf Daten eines bestimmten Nennwerts zuzugreifen. Ich habe keine Erfahrung mit Filtern und ich weiß nicht, mit welchen Problemen Sie konfrontiert werden.
+0

Danke, ich habe die Tabelle in der Zwischenzeit geändert. – duracell