내 클래스는 다음과 같이 (난 단지 관련 속성을 포함)을 찾습니다NHibernate : 자식 컬렉션의 서브셋으로 여러 엔티티를 얻는가?
public class Order
{
public virtual Customer Customer { get; set; }
public virtual IEnumerable<OrderLine> OrderLines { get; set; }
}
public class OrderLine
{
public virtual string Product { get; set; } // Simplified
}
지금은 내가 원하는 것은 특정 고객에 대한 모든 주문을 선택하는 분리 기준을 만드는 것입니다, 동시에 검색하여에 각 주문에 대해 처음 10 개 주문 만 첫 번째 부분은 간단합니다 :
Customer someCustomerObject = ...;
var criteria = DetachedCriteria.For<Order>().Add(Restrictions.Eq("Customer", someCustomerObject);
하지만 어떻게 NHibernate에 열심히 위의 기준에 의해 검색된 각 주문에 대한 첫 번째 10 orderlines를 검색 할 내가 지시 하는가?
session.CreateFilter(lazyCollection, "").SetFirstResult(0).SetMaxResults(10).List();
을하지만이 CreateFilter
방법 Order.OrderLines
을 줄 때, 그것은 이후에 다음를 검색을 먼저 orderlines를 검색하고 :
나는 다음의 예에 따라 필터를 사용하여 시도했다 (NHibernate에 문서에서 가져온) 10 개의 첫 번째 주문은 내가 원하는 것이 아닙니다. 나는 또한 이것을 NHibernateUtil.Initialize
에 대한 전화와 결합하여 사용하지 않으려 고 노력했다.
이 문제에 대한 분리 된 기준은 어떻게 만듭니 까? 아니면 전체적으로 가능하지 않은 경우 전체 컬렉션을 가져 오지 않고 각 주문에 대해 10 개의 첫 번째 결과 만 검색하는 방법은 무엇입니까?
당신이 대신 "기준"에는 setMaxResults에 전화를하면 어떻게됩니까? –