Мне нужна ручная картография коллекции.
Я использую таблицу соединений для хранения ссылок на идентификаторы комнат и идентификаторы calEvent.
Тем не менее, поиски будут в основном основаны на 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
Верны ли мои рассуждения?