1

クラスにマップしたいテーブルがいくつかあります。テーブルは次のようになります。

Asset
---------
AssetId
AssetName

Product
---------
ProductId
ProductName
AssetId

Disposal
---------
DisposalId
AssetId
DisposalDate

基本的に私がやりたいことは、Product テーブルを AssetId の Disposal テーブルに結合して、私の製品が資産によって結合された Disposal のコレクションを持つようにすることです。次のマッピングを定義しましたが、NHibernate (1.2) はバッグで定義されたキー列を無視しているようで、ProductId (つまり、Product.ProductId = Disposal.AssetId) によって Product テーブルを Disposal テーブルに結合することを選択します。これがバグなのか、それとも適切に定義していないのかはわかりませんが、誰かがこれを行う方法を持っているなら、私は最も素晴らしいでしょう.

  <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>
4

2 に答える 2

1

廃棄物を製品にマッピングしましたか?

あなたのスキーマは、処分を製品に一意に関連付けていません。Disposal は、Product ではなく Asset にのみ関連付けることができます。

あなたのスキーマは、資産には多くの製品があり、資産には多くの処分があると私に言っています。廃棄が特定の製品に対するものであると言うものは何もありません。

于 2008-11-21T16:13:39.730 に答える