나는 다음과 같은 두 개의 테이블이 있습니다NHibernate에 - 왼쪽 조인
채용 AreaID, JobNo (복합 키)
로그 LOGID, AreaID, JobNo
내가 모든 작업을 얻을 필요 그 (것)들과 관련되었던 아무 기록도없는. SQL에서 할 수있는 :
SELECT Jobs.AreaID,
Jobs.JobNo
FROM Jobs
LEFT JOIN Logs
ON Jobs.AreaID = Logs.AreaID
AND Jobs.JobNo = Logs.JobNo
WHERE Logs.LogID is null
하지만 어떻게 NHibernate 함께이 작업을 수행할지 모르겠습니다. 아무도 어떤 포인터를 제공 할 수 있습니까? 여기
내 매핑은 다음과 같습니다OK
<class name="Job" table="Jobs">
<composite-key name="Id">
<key-property name="JobNo"/>
<key-many-to-one name="Area" class="Area" column="AreaID"/>
</composite-key>
</class>
<class name="Log" table="Logs">
<id name="Id" column="LogID">
<generator class="identity"/>
</id>
<property name="JobNo"/>
<many-to-one name="Area" class="Area" column="AreaID"/>
</class>
감사
업데이트, 나는 약간 Nosila의 답변을 수정, 이것은 지금 내가 원하는 일을한다 :
Log logs = null;
return session.QueryOver<Job>()
.Left.JoinAlias(x => x.Logs,() => logs)
.Where(x => logs.Id == null)
.List<Job>();
나는 이것을 내 일에 추가해야했습니다. 매핑 :
<bag name="Logs">
<key>
<column name="JobNo"></column>
<column name="DivisionID"></column>
</key>
<one-to-many class="Log"/>
</bag>
도움 주셔서 감사합니다. :)
지금 질문을 게시 할 수 있습니까? – Nosila
위의 SQL 쿼리는 현재 내가 사용하고있는 것입니다. 나는 지금 NH를 배우고 있으며 작은 응용 프로그램을 그것을 사용하도록 변환하려고합니다. – Tom
매핑이 생성 되었습니까? 또한, 만약 내가 틀렸다면 누군가가 나를 바로 잡는다.하지만 당신은 조인에 조건을 추가하기 위해 (QueryOver API를 사용하여, 어쨌든) NHibernate 3.2가 필요하다고 생각한다. – Nosila