La base de données de l'héritage que j'ai hérité contient les tableaux suivants:NHibernate - Cartographie d'un étranger Key String
Teams (
TeamId INT PRIMARY KEY,
Name VARCHAR(30)
)
Players (
PlayerId INT PRIMARY KEY,
Team VARCHAR(30)
)
La clé étrangère dans la table des joueurs fait référence au nom de l'équipe, plutôt que teamid.
J'ai essayé de la carte de l'équipe aux joueurs en utilisant un sac:
<bag name="Players">
<key column="Team" foreign-key="Name" />
<one-to-many class="DataTransfer.Player, DataTransfer" />
</bag>
Mais je reçois SqlException: La conversion a échoué lors de la conversion de la valeur varchar 'Arsenal' au type de données int
I J'ai été capable d'utiliser un sac pour mapper des clés étrangères dans d'autres zones, mais dans ces cas, la clé étrangère se référait à la clé primaire de la table parente.
Edit: J'utilise NHibernate 2.0.1
Salut, Nous sommes le même problème, avez-vous trouvé une solution à cela? – fredrik
Je me suis contenté de créer une nouvelle colonne de type int pour la clé étrangère et de l'utiliser à la place, je n'ai jamais réussi à faire fonctionner une clé étrangère. –