을 설정하지 않고 NOT IN을 구현하는 방법이이 질문에 유사합니다 NHibernate - Implement "NOT IN" query using ICriteria관계
하지만 그건 내 솔루션을 작동하지 않습니다.
class Order
{
DateTime CreatedDate { get; set;}
Person CreatedBy { get; set; }
}
과 담당자 : :
class Person
{
string Name { get; set;} // etc.
}
내가 이 날짜 범위 내에서 주문을하지 할 것을 모든 사람을 검색 할
나는 주문을해야합니다. 는 SQL은 다음과 같이 끝날 것 :
SELECT *
FROM Person
WHERE Id NOT IN (SELECT PersonId
FROM Order
WHERE CreatedDate BETWEEN '2012-01-01' and '2012-01-31')
내가 위의 질문에서 제공하는 솔루션으로 쿼리 할 때 2,100명 이상 (SQL은 많은 매개 변수를 허용하지 않을 것이다)이있는 경우, 그것은 실패합니다.
너무 많은 데이터를 가져 오기 때문에 Orders 컬렉션을 추가 할 수 없습니다 (날짜 범위 만 필요함).
어떻게 NHibernate로 이것을 할 수 있습니까?
HQL 또는 SQL을 사용하지 않는 이유는 무엇입니까? – Rippo
HQL을 사용해도 괜찮 았지만 쿼리를 유지 관리 할 수 있습니다. 내가 이해 한대로, SQL은 당신이 NHibernate를 가진 엔티티에 당신의 질의를 쉽게 매핑하도록하지 않을 것이다. –