Je suis en train de passer des .hbm
correspondances pour les correspondances fluides et avoir un problème avec la cartographie des composites ids et l'utilisation des interfacesComment mapper un ID composite avec un nhibernate fluide en utilisant une interface?
la classe se présente comme suit:
public class ClassWithCompositeId {
public virtual IKeyOne KeyOne { get; set; }
public virtual IKeyTwo KeyTwo { get; set; }
}
notre cartographie HBM ressemble à ceci:
<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>
Veuillez noter que nous avons des interfaces dans la classe! Non, je suis en train de cartographier cela avec Fluent nhibernate.
Map {
public ClassWithCompositeIdMap() {
CompositeId()
.KeyReference(x => x.KeyOne, "colkeyone")
.KeyReference(x => x.KeyTwo, "colkeytwo");
...
}
}
Mais maintenant Courant génère la cartographie comme suit:
...
<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>
...
La « classe » Attribut des points maintenant à l'interface pas à la mise en œuvre de cette interface qui se traduit par une erreur.
Comment puis-je dire à Fluent nHibernate d'utiliser une autre classe comme valeur d'attribut?
Désolé, les classes boQualifikation et boSkill devrait être la mise en œuvre de IKeyOne et IKeyTwo – MoJo2600