Supposons que vous ayez les définitions de classe suivantes:Quelle est la syntaxe XML pour mapper une classe imbriquée dans NHibernate
public class SomeEntity
{
public class Key
{
public virtual OtherEntity Other { get; set; }
public virtual int Index { get; set; }
public override bool Equals(object other)
{
// something here...
}
public override int GetHashCode()
{
// something here...
}
}
public virtual Key Id { get; set; }
}
public class OtherEntity
{
public virtual int Id { get; set; }
}
Et alors vous voulez avoir un fichier de mappage similaire à celui ci-dessous:
<class name="SomeEntity" table="SOME">
<composite-id name="Id" class="SomeEntity.Key">
<key-many-to-one name="Other" column="OTHER_ID" class="OtherEntity" />
<key-property name="Index" column="INDEX" type="int" />
</composite-id>
</class>
<class name="OtherEntity" table="OTHER">
<id name="Id" column="ID" type="int">
<generator class="identity" />
</id>
</class>
La tentative d'initialisation de NHibernate génère un NHibernate.MappingException
levé, avec le message "Impossible de trouver la classe: SomeEntity.Key". Le plus probable est le problème avec l'attribut class="SomeEntity.Key"
. Je n'ai pas pu trouver la syntaxe appropriée pour référencer une classe imbriquée.
Je voudrais aussi avoir un indice où d'autre aurais-je dû chercher la réponse (je n'ai pas trouvé la réponse dans le livre "NHibernate in Action", par exemple). Quelle est votre ressource préférée pour ces questions à propos de NHibernate?
Exactement. Nous l'avons donc documenté pour les générations futures;) –