나는 상당히 깊은 객체 그래프 (5-6 노드)를 가지고 있으며, NHProf가 "Select N + 1"문제가 있음을 알리고있다. 해야 할 것).Fluent NHibernate 선택 n + 1
제가 알고 두 솔루션입니다
- 열망로드 아이
- 브레이크 떨어져 내 개체 그래프 (열망로드) 정말 하나 싶지 않아
(비록 내가 성장할 것을 생각하면 나중에 그래프를 분해 할 수도 있지만)
현재로서는 ....
NHibernate (FluentNHibernate)가 자식에 접근하려고 시도 할 때마다 select-n + 1-ing 대신에 그들을 반복 할 때마다 한 번에로드 할 수 있다고 말할 수 있습니까?
"무제한 결과 집합"이 나옵니다. 아마도 같은 문제 일 수 있습니다. 가능하다면 위의 해결 방법으로 해결할 것입니다.
각 자식 컬렉션 (그래프 전체)은 약 20 명의 회원 만 가질 수 있지만 20^5는 많이 있으므로 루트를 얻을 때 모든 것을 열심히로드하고 싶지는 않습니다. 내가 가까이 다가 갈 때마다 어린이 수집.
편집 : 추가 고려 사항 ... 아이들을 렌더링하고 싶을 때 페이징을 도입하려면 어떻게해야합니까? 여기에 내 개체 그래프를 깨뜨리면 안 되나요? 아니면이 모든 문제를 해결하기 위해 사용할 수있는 비열한 점이 있습니까?
"이 시나리오를 처리하기 위해 특정 nhibernate 쿼리를 만드는 대신 도메인 모델을 사용하는 방식을 추구하고 싶습니다." 확실히. 마지막으로 원하는 것은 특정 쿼리입니다. 그 물건을 체크 아웃, –
노트 - "유창 - nh 인터페이스 이제 BatchSize() 속성을 지원하지 않습니다 – KevinT