У меня есть пара таблиц, которые я хочу сопоставить с классами. Таблицы выглядят так:
Asset
---------
AssetId
AssetName
Product
---------
ProductId
ProductName
AssetId
Disposal
---------
DisposalId
AssetId
DisposalDate
По сути, я хочу присоединить таблицу продукта к таблице утилизации в AssetId, чтобы в моем продукте была коллекция утилизации, объединенная активом. Я определил следующее сопоставление, но NHibernate (1.2), кажется, игнорирует ключевой столбец, определенный в сумке, и решает присоединить таблицу Product к таблице Disposal по ProductId (т.е. Product.ProductId = Disposal.AssetId). Я не уверен, является ли это ошибкой или я не определяю ее должным образом, но если у кого-то есть способ сделать это, я был бы очень признателен.
<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>