1
컬렉션을 손으로 매핑해야합니다.NHibernate Bag Mapping
저는 회의실 테이블과 calEventId에 대한 참조를 보유하기 위해 조인 테이블을 사용하고 있습니다. 그러나 조회는 주로 방의 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 *
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
으로 - 내가 좋아하는 뭔가에서 select 문의 복잡성을 줄일 것인가?
감사합니다. 다음 오류가 발생합니다. faultString = "외래 키 (FK3EDE57A96B977B0C : tb_calEvent_rooms [roomID, buildingID]))는 참조 된 기본 키 (tb_rooms [id])와 동일한 열 수를 가져야합니다." 방 또는 건물 매핑이 잘못되었다고 가정합니다. Hmmmmm .. – user17510
예, 참조 된 테이블에 PK로 두 열을 모두 포함해야합니다. –