J'ai deux tables que je veux mapper aux classes. Les tableaux ressemblent à ceci:Rejoindre des classes NHibernate qui partagent une colonne commune mais pas de clé étrangère
Asset
---------
AssetId
AssetName
Product
---------
ProductId
ProductName
AssetId
Disposal
---------
DisposalId
AssetId
DisposalDate
Au fond ce que je veux faire est de se joindre à la table des produits à la table d'élimination sur assetId pour que mon produit a une collection Aliénations rejoint par actifs. J'ai défini le mappage suivant mais NHibernate (1.2) semble ignorer la colonne clé définie dans le sac et choisit de joindre la table Product à la table Disposal par ProductId (ie Product.ProductId = Disposal.AssetId). Je ne suis pas sûr que ce soit un bug ou si je ne le définis pas correctement, mais si quelqu'un a un moyen de le faire, je serais très reconnaissant.
<class name="Product" table="Product" lazy="false">
<id name="ProductId" column="ProductId" type="int">
<generator class="native" />
</id>
<property name="ProductName" column="ProductName"/>
<bag name="Disposals" fetch="join" >
<key column="AssetId" foreign-key="AssetId/>
<many-to-many class="Disposal"/>
</bag>
</class>