2 Stimmen

Nhibernate Map Mapping mit Composite Index

Ich bin neu in NHibernate und habe Probleme beim Versuch, ein IDictionary zu modellieren.

Der Schlüssel meines Wörterbuchs ist ein komplexer Typ namens "Bezeichner" und der entsprechende "Wert" ist vom Typ "String", z. B. IDictionary<Identifier,string>.

(Bitte entschuldigen Sie, wenn der Entitätsname "Identifier" verwirrend ist, es handelt sich um einen Begriff aus der Domäne, und ich habe ihn verwendet :) )

Meine Zuordnung sieht folgendermaßen aus:

<map name="Identifiers" table="ShareClassIdentifier" lazy="false" >
  <key>
    <column name="ShareClassIdentifier_ShareClassId"  />
  </key>
  <composite-index class="Identifier">
    <key-property column="ShareClassIdentifier_IdentifierId" name="Id" />
  </composite-index>
  <element column="ShareClassIdentifier_Value" type="System.String"  />
</map>

Das funktioniert insofern gut, als NHibernate mein Wörterbuch erstellt und die Werte für die Schlüssel ausgefüllt werden. Meine Identifier-Entität wird jedoch nicht ausgefüllt. Eine Identifier-Entität wird erstellt, aber es fehlen alle Eigenschaften (außer der Id).

Mit NHibernate Profiler kann ich sehen, dass NHibernate nicht auf meine Identifier-Tabelle verknüpft, aber ich kann nicht herausfinden, wie diese Verknüpfung in der oben genannten Zuordnung angeben?

Vielen Dank im Voraus

1voto

Diego Mijelshon Punkte 52110

Sie kartieren Identifier als wäre es eine Komponente mit nur einer Eigenschaft (Id).

Wenn es eine Entität ist, ersetzen Sie die <composite-index> Element mit:

<map-key-many-to-many class="Identifier"
                      column="ShareClassIdentifier_IdentifierId"/>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X