NHibernate One-To-One Cartographie
Je suis nouveau sur NHibernate ont donc eu une exposition limitée aux mappages etc jusqu'à présent, et je viens de frapper un scénario dans lequel j'ai besoin d'un peu d'aide avec.
J'ai 2 tables:
Examens
TaggedReviews
J'ai 2 classes qui ressemblent à ça (j'ai exclu les non-importantes propriétés pour des raisons de concision):
Examen
public virtual int ReviewId { get; set; }
public virtual TaggedReview TaggedReview { get; set; }
public virtual string Title { get; set; }
public virtual string Descrip { get; set; }
TaggedReview
public virtual int ReviewId { get; set; }
public virtual Review Review { get; set; }
public virtual string TaggedReviewDescrip { get; set; }
Mon NHibernate XML des fichiers de mappage de ces tables/classes comme suit (édité par souci de concision):
Review.hbm.xml
<class xmlns="urn:nhibernate-mapping-2.2" name="Review" table="Reviews">
<id name="ReviewId" unsaved-value="0">
<column name="ReviewId"></column>
<generator class="native" />
</id>
<property name="Title" not-null="true" />
<property name="Descrip" not-null="true" />
<one-to-one name="TaggedReview" class="TaggedReview" /> <!-- This is probably very wrong?! -->
</class>
TaggedReview.hbm.xml
<class xmlns="urn:nhibernate-mapping-2.2" name="TaggedReview" table="TaggedReviews">
<id name="ReviewId">
<column name="ReviewId"></column>
<generator class="native"/>
</id>
<one-to-one name="Review" class="Review" /> <!-- This is probably very wrong?! -->
<property name="TaggedReviewDescrip" not-null="true" />
</class>
La propriété 'ReviewId' est le PK pour les "Avis" de la table. C'est un FK dans le " TaggedReviews table.
Il y a TOUJOURS 1 enregistrement/de ligne dans la TaggedReviews table pour chaque enregistrement/de ligne dans les Commentaires de la table - pas plus, pas moins.
J'ai également des doutes sur la "TaggedReview' classe que ce tableau n'a PAS de PK, juste un FK pour les Examens de la table (ReviewId), mais il semblait que le fichier de mappage besoin d'un id de l'élément là-dedans, ce n'était pas sûr au sujet de cette!
Quelqu'un peut veuillez vous conseiller sur la façon de configurer cette cartographie?
source d'informationauteur marcusstarnes
Vous devez vous connecter pour publier un commentaire.
Ayende a une bonne explication pour un-à-un les mappages de ici.
Dans votre cas, les mappages doit probablement ressembler à ceci:
Review.hbm.xml
TaggedReview.hbm.xml
Vous aurez très probablement besoin d'une clé primaire dans la table, parce que vous ne pouvez pas utiliser la même colonne de la clé et la clé étrangère.
Si vous ne pouvez pas ou ne souhaitez pas modifier la db, vous pouvez prendre un coup d'oeil à NHibernate de mise en correspondance un-à-un (ou zéro).