2012-05-10 4 views
1

FN에서 "not in"문을 코딩하려고하는데, 실제로 그것을 만드는 가장 좋은 방법이 무엇인지 알지 못합니다. 다음은 몇 가지 SQL 문입니다.Fluent Nhibernate Not In 사례 성명서

select * from T1 
where T1. id not in 
(
    select distinct T2.fkeyID from T2 
) 

일대 다 참조를 사용하여 매핑을 만들고 속성 검사를 사용해야합니까? 아니면 다른 방법이 있습니다. 어떻게 든 문제를 해결하기 위해 QueryOver를 작성 하시겠습니까? 감사합니다. .

답변

2
var subquery = QueryOver.Of<T2>() 
    .Select(Projections.Distinct(Projections.Property("referencedT1.id"))) 

var results = session.QueryOver<T1>() 
    .WithSubquery.WhereProperty(t1 => t1.Id).NotIn(subquery) 
    .List(); 
+0

덕분에, 이미 그것을 해결하는 방법을 발견했다. –