내가 QueryOver에 다음과 같은 SQL로 변환하려고 주요 쿼리의 사용 특성 :NH QueryOver -
Select 1
From myTable mt
Where mt.ForeignKey in (select ID from otherTable ot where ot.ID = R.ID)
를 내가는/NOT EXISTS 문처럼 EXISTS 안에이 하위 쿼리를 사용하려면 :
select * from table R where .... AND EXISTS (query above)
을
mainQuery.WithSubquery.WhereExists(QueryOver.Of<myTable>()
.Where(mt => mt.ForeignKey)
.WithSubquery.IsIn(QueryOver.Of<otherTable>().Where(c => c.Id == R.SomeId)));
내가 사기 할 하위 쿼리로이 쿼리를 생성 :
현재 내가 무엇인가가 메인 쿼리에 연결하십시오. 문제는 R이라는 별칭을 가진 테이블이 기본 쿼리에서 호출되는 테이블이며 테이블의 열 (NHibernate Model) R (위의 쿼리에서 액세스 할 수 없음)에 액세스하는 방법을 모르겠다는 것입니다. 다음과 같습니다 :
어떻게하면 기본 쿼리에서 값을 가져 와서 하위 쿼리에서 사용할 수 있습니까? 나는 이것이 (mainQuery.WithSubquery.Where (..) 또는 smth. similar와 같이) 서브 쿼리를 인라인으로 만 생성하는 것이 가능하다고 생각하지만 그렇게 할 수있는 최선의 방법이 무엇인지 알 수 없다. 어떤 도움을 주셔서 감사합니다!
미리 감사드립니다.
별칭 팁을 가져 주셔서 감사합니다! 여러분의 도움과 코드베이스의 다른 코드를 살펴봄으로써 문제를 해결할 수있었습니다! – Philipp
그레이트 오티 그 참조;) 즐기 NHibernate, 멋진 도구;) –