0

タイトルが少し奇妙に聞こえるかもしれませんが、データベース設計の画面を添付しました。間に多対多の関係がある 2 つのマスター テーブルがあります。ただし、多対多テーブルの主キーを使用して、ResourceAllcoation テーブルと呼ばれる別のテーブルを外部キー (ProjectResourceID) で参照しています。

Resource エンティティで ResourceAllocation のバッグを取得する最良の方法は何でしょうか? nhibernate でこれを行う直接的な方法はありますか?

現在、私の nhibernate マッピングには ProjectResource テーブルへの 1 対多のバッグがあり、ResourceAllocation テーブルを参照していますが、これは最善の方法ではないかもしれません。

私の無知をお許しください。どんな考えでも大歓迎です。 ここに画像の説明を入力

@kalki、あなたのマッピングを実装したとき、生成されるSQLクエリは

SELECT 
* 
FROM PROJECTRESOURCE P 
LEFT OUTER JOIN RESOURCEALLOCATION  R 
ON P.PROJECTRESOURCEID=R.ID WHERE P.RESOURCEID=1

しかし、ProjectResource には PROJECTRESOURCEID 列がないため、これは機能しません。

生成されたクエリが

SELECT * 
FROM PROJECTRESOURCE P 
LEFT OUTER JOIN RESOURCEALLOCATION R 
ON P.ID = R.PROJECTRESOURCEID
WHERE P.RESOURCEID=1

それはうまくいくでしょう。

4

1 に答える 1

0

これは、NHibernate の多対多と IdBag を使用してマップできます。

于 2012-05-25T08:51:14.850 に答える