NHibernate - Cartographie d'une Chaîne de Clé Étrangère
L'héritage de la base de données j'ai hérité contient les tableaux suivants:
Teams (
TeamId INT PRIMARY KEY,
Name VARCHAR(30)
)
Players (
PlayerId INT PRIMARY KEY,
Team VARCHAR(30)
)
La clé étrangère dans les joueurs de la table désigne le nom de l'équipe, plutôt que de teamId.
J'ai tenté de la carte de l'Équipe de Joueurs à l'aide d'un sac:
<bag name="Players">
<key column="Team" foreign-key="Name" />
<one-to-many class="DataTransfer.Player, DataTransfer" />
</bag>
Mais je reçois SqlException:
Échec de la Conversion lors de la conversion de la valeur varchar "Arsenal" pour le type de données int
J'ai été en mesure d'utiliser un sac de carte de la chaîne de clés étrangères dans d'autres domaines, mais dans ces cas, la clé étrangère visée à la clé primaire de la table parent.
Edit: je suis en utilisant NHibernate 2.0.1
Salut, Nous sommes d'avoir le même problème, avez vous trouvé une solution à cela?
J'ai fini par la simple création d'une nouvelle colonne de type int pour la clé étrangère et l'aide que, au contraire, n'a jamais réussi à obtenir une chaîne de caractères de la clé étrangère de travail.
J'ai fini par la simple création d'une nouvelle colonne de type int pour la clé étrangère et l'aide que, au contraire, n'a jamais réussi à obtenir une chaîne de caractères de la clé étrangère de travail.
OriginalL'auteur Mr Plough | 2009-01-20
Vous devez vous connecter pour publier un commentaire.
Je pense que le bien-ref attribut existe pour résoudre ce problème.
Ayant la propriété-ref dans la "clé" est juste assez. Pas besoin de l'avoir dans le plusieurs-à-plusieurs n'est pas nécessaire.
OriginalL'auteur Frederik Gheysels
Maintenant, je ne suis pas sûr à 100% si cela va fonctionner, mais avez-vous essayé plusieurs-à-un mappage de relation?
Peut-être quelque chose comme ceci:
Je crois que cela devrait fonctionner, selon le NHibernate manuel de bien-ref est un attribut qui est useed pour la cartographie de données traditionnels où une clé étrangère qui fait référence à une clé unique de la table associée à d'autres que la clé primaire. Cela ressemble à la situation dans laquelle vous vous trouvez.
OriginalL'auteur CalvinR
Je crois que vous auriez besoin d'utiliser la propriété-ref attribut pour définir le champ que vous voulez associer à l'. La clé étrangère de l'attribut est utilisé pour générer DDL pour créer des relations (si vous utilisez cette fonctionnalité).
OriginalL'auteur Jim Petkus
Viens de trouver ceci: https://nhibernate.jira.com/browse/NH-1272, semble que ce soit un bug dans NHibernate, et il est fixé dans la section 2.1.0Alpha1.
Je l'ai essayé dans NHibernate 2.1.0Alpha2, et ça marche!!!
(property-ref devrait seulement être dans la carte tag)
OriginalL'auteur fredrik