Wie um die Karte composite-id mit fluent nhibernate, die über eine Schnittstelle?

Ich versuche zu wechseln .hbm Zuordnungen zu fluent-mappings und habe ein problem mit der Zuordnung von composite-ids und die Verwendung von Schnittstellen

die Klasse sieht wie folgt aus:

public class ClassWithCompositeId {
  public virtual IKeyOne KeyOne { get; set; }
  public virtual IKeyTwo KeyTwo { get; set; }
}

unserer hbm-mapping sieht wie folgt aus:

<hibernate-mapping ...>
   <class name="ClassWithCompositeId" table="t_classwithcompositeid">
      <composite-id>      
         <key-many-to-one name="KeyOne" column="colkeyone" class="company.namespace.boSkillBase, BL_Stammdaten" />
         <key-many-to-one name="KeyTwo" column="colkeytwo" class="boQualifikation" />         
      </composite-id>
</hibernate-mapping>

Bitte beachten Sie, dass wir die Schnittstellen in der Klasse! Nein, ich versuche, die Karte dies mit Fluent nhibernate.

Map {
   public ClassWithCompositeIdMap() {
         CompositeId()
            .KeyReference(x => x.KeyOne, "colkeyone")
            .KeyReference(x => x.KeyTwo, "colkeytwo");
          ...
   }
}

Aber jetzt Fließend erzeugt das Mapping wie folgt:

...
 <composite-id mapped="false" unsaved-value="undefined">
      <key-many-to-one name="KeyOne" class="company.namespace.IKeyOne, Interfaces, Version=0.1.4.3379, Culture=neutral, PublicKeyToken=null">
        <column name="colkeyone" />
      </key-many-to-one>
      <key-many-to-one name="KeyTwo" class="company.namespace.IKeyTwo, Interfaces, Version=0.1.4.3379, Culture=neutral, PublicKeyToken=null">
        <column name="colkeytwo" />
      </key-many-to-one>
    </composite-id>
...

Den "Class" - Attribut verweist nun auf die Schnittstelle, nicht die Implementierung dieser Schnittstelle, die zu einem Fehler führt.

Wie kann ich feststellen, Fluent nHibernate zu verwenden und eine andere Klasse als Attribut-Wert?

  • sorry, die Klassen boQualifikation und boSkill sollte die Umsetzung der IKeyOne und IKeyTwo
InformationsquelleAutor MoJo2600 | 2010-10-22
Schreibe einen Kommentar