1
我需要一個手工映射集合。NHibernate包映射
我正在使用連接表來保存對房間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
是我的推理是否正確?
感謝此, 雖然我收到以下錯誤。 faultString =「外鍵(FK3EDE57A96B977B0C:tb_calEvent_rooms [roomID,buildingID]))必須與引用的主鍵(tb_rooms [id])具有相同的列數」 我想房間或建築物映射不正確。嗯,.. – user17510 2009-02-03 08:39:20