2011-04-19 4 views
0

J'ai une classe nommée TimeSheet et une classe appelée Contract. La table de base de données "TimeSheet" contient une clé étrangère "ContractOID" et la classe de contrat contient une instance de TimeSheet en tant qu'agrégation.Clé étrangère de mappage NHibernate

Maintenant je veux que NHibernate insère l'OID de contrat comme clé étrangère dans ma table "TimeSheet".

Si le contrat contenait une liste de TimeSheet, je le réaliserais avec une association un-à-plusieurs, mais comment gérer cela dans ce cas particulier?

+0

Vous ne voulez pas d'avoir un contrat d'un à plusieurs pour Timesheet? C'EST À DIRE. N'auriez-vous pas plusieurs feuilles de temps soumises sur un seul contrat. Comme je me suis plongé dans la modélisation d'objets au cours des dernières années, j'ai appris à me méfier des mappings 1-1 purs (à l'exception de la cartographie de la hiérarchie des classes). J'ai aussi appris que beaucoup-à-plusieurs n'existent pas vraiment. Cette table de jonction a plus de signification que les gens réalisent. –

Répondre

0
+0

J'ai déjà essayé le mapping un-à-un, mais ça n'a pas fonctionné dans mon cas. Je pensais qu'il y aurait un autre moyen. J'ai essayé d'éviter cette étape, mais maintenant je mets l'agrégation de TimeSheet dans une liste. C'est une solution sale, mais ça marche. – Cr3at0rX

+0

Qu'est-ce qui n'a pas fonctionné? – mathieu

+0

La clé étrangère ne sera pas mise à jour ou insérée – Cr3at0rX

0

Sonne comme un à-un pour moi? est-ce correct?

Voir ici: NHibernate Mapping - one-to-one

+0

J'ai déjà essayé le mappage un-à-un, mais cela n'a pas fonctionné dans mon cas. Je pensais qu'il y aurait un autre moyen. J'ai essayé d'éviter cette étape, mais maintenant je mets l'agrégation de TimeSheet dans une liste. C'est une solution sale, mais ça marche. – Cr3at0rX

Questions connexes