コレクションを手作業でマッピングする必要があります。
ルーム ID と calEvent ID への参照を保持するために結合テーブルを使用しています。ただし、ルックアップは主に部屋に基づいているため、次のマッピングbuildingID
に追加したいと思います。buildingID
その方法を知っている人はいますか?
NHibernate のドキュメントを調べましたが、何も見つかりません。
<bag name="rooms" table="tb_calEvent_rooms" lazy="false">
<key column="calEventID"/>
<many-to-many class="BasicRoom" column="roomID"/>
</bag>
クラス:
public class BasicRoom
{
private long _id;
private long _buildingID;
private string _roomName;
ヒント/ヘルプは大歓迎です。
理由:
部屋が建物を変更することはないので、結合テーブルに buildingID を追加すると; selectステートメントの複雑さを次のようなものから減らします-
SELECT *
FROM
dbo.tb_calEvent_rooms
INNER JOIN dbo.tb_calEvents ON (dbo.tb_calEvent_rooms.calEventID = dbo.tb_calEvents.id)
INNER JOIN dbo.tb_rooms ON (dbo.tb_calEvent_rooms.roomID = dbo.tb_rooms.id)
INNER JOIN dbo.tb_buildings ON (dbo.tb_rooms.buildingID = dbo.tb_buildings.id)
WHERE
dbo.tb_buildings.id = 54
に
SELECT *
FROM
dbo.tb_calEvents
INNER JOIN dbo.tb_calEvent_rooms ON (dbo.tb_calEvents.id = dbo.tb_calEvent_rooms.calEventID),
dbo.tb_buildings
WHERE
dbo.tb_buildings.id = 54
私の推論は正しいですか?