NHibernate Double de la classe/de l'entité problème de mappage
J'ai commencé mon incursion dans le monde C#.NET et NHibernate et je suis finalement coincé sur une exception je n'arrive pas à comprendre, et Google n'aide pas.
Je suis un NHibernate.DuplicateMappingException : Doublon de classe/de l'entité de cartographie sur ma classe Parent. Ci-dessous mon fichier de mappage pour la classe Parent, et les Jeunes de la classe qui utilise la classe Parent:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Surrix.Cerberus.YouthData"
namespace="Surrix.Cerberus.YouthData.Domain">
<class name="Parent">
<id name="parentId">
<generator class="guid" />
</id>
<property name="firstName" not-null="true" />
<property name="lastName" not-null="true" />
<property name="homePhone" />
<property name="parentEmail" />
<property name="relationshipToYouth" />
<!-- Address component that should map to the Address class -->
<component name="parentAddress">
<property name="street" />
<property name="state" />
<property name="zipCode" />
<property name="city" />
</component>
</class>
</hibernate-mapping>
Et voici les parties pertinentes de la classe jeune (il est beaucoup plus grand)
<set name="YouthParents" table="YouthParents" cascade="none">
<key column="youthId" />
<many-to-many column="parentId" class="Parent"/>
</set>
Seule autre chose, c'est la Jeunesse de la classe a également les propriétés firstName et lastName, mais je ne vois pas que le fait d'être un problème.
OriginalL'auteur Patrick McDaniel | 2010-09-12
Vous devez vous connecter pour publier un commentaire.
Vous ajoutez le fichier ou l'assembly contenant la cartographie à deux reprises à votre objet de Configuration.
Vous devez construire votre configuration dans un seul et même endroit, mais le problème est dans la façon dont vous ajoutez les mappages. Vous devriez poster le code pour que.
Bien que cette réponse n'est pas complètement me faire un résultat final, il a mis en moi le long du chemin. Avais-je posté le reste de ma HBMs je suis sûr qu'il aurait été trouvé. Dans la Jeunesse, les hbm, je référence le Parent, et d'autres classes. Ainsi, lorsque vous ajoutez vos Assemblées à la Configuration de l'objet que vous souhaitez ajouter de la Jeunesse de l'objet. Au moins, c'est qu'est-ce résolu mon problème.
OriginalL'auteur Diego Mijelshon
Assurez-vous que vous êtes pas faire les deux de ces 2 choses.
(1) ajout de l'assemblée dans le code:
(2) Et puis aussi l'ajout de l'assemblée dans le fichier de configuration:
cfg.AddAssembly(Assembly.GetExecutingAssembly())
qui a résolu mon problème.OriginalL'auteur granadaCoder
J'ai eu ce problème, et résolu en mettant cette déclaration dans
hibernate.cfg.xml
fichier:OriginalL'auteur yusra
Une autre cause possible de générer cette erreur est multiple hbm fichiers faisant référence à la même Assemblée, lors d'une Configuration.AddAssembly.
Tous les fichiers hbm dans le même assembly sont traitées avec un AddAssembly appel.
OriginalL'auteur sweetfa
Car il donne un double de la classe de l'entité de la cartographie, je ne peux que imagen que vous avez deux ou plus *.xml.hbm fichiers faisant référence à la même chose .net de classe.
Assurez-vous que la classe xml de l'élément de votre classe Jeunes n'ont pas la même valeur pour l'attribut name.
OriginalL'auteur Ramon Smits