0

그래서 나는 다음과 같은 관계가있다. 여기Fetch 메서드에서 별칭을 통해 데이터를 어떻게로드 하시겠습니까? 연락처 - - 엔티티</p> <p>은 "<는"많은과 1을 의미합니다 "-"1-1입니다</p> <p>게시판 < BulletinEmailLog < BulletinEmailLogRecipient : 좋아

BulletinEmailLog BulletinEmailLogs = null; 
     BulletinEmailRecipient EmailRecipients = null; 
     Contact Contact = null; 
     Entity Entity = null; 
     var pastBulletin = NHibernateSession.Current.QueryOver<Bulletin>() 
         .Where(x => x.Id == bulletinID) 
         .Fetch(x => x.BulletinEmailLogs).Eager 
         .JoinAlias(x => x.BulletinEmailLogs,() => BulletinEmailLogs, NHibernate.SqlCommand.JoinType.LeftOuterJoin) 
         .JoinAlias(() => BulletinEmailLogs.Recipients,() => EmailRecipients, NHibernate.SqlCommand.JoinType.LeftOuterJoin) 
         .JoinAlias(() => EmailRecipients.Contact,() => Contact, NHibernate.SqlCommand.JoinType.LeftOuterJoin) 
         .JoinAlias(() => Contact.Entity,() => Entity, NHibernate.SqlCommand.JoinType.LeftOuterJoin) 
         .Future<Bulletin>(); 

내가 필요한 모든 정보를 잡기 위해 하나의 데이터베이스 쿼리를 사용하려고 여기

그리고

는 코드입니다. 문제는 나중에 BulletinEmailLog를 반복하려고하지만 데이터베이스에 대한 호출이 표시된다는 것입니다. 메모리를 사용하여 나중에 검색하기 위해 선행 코드 내에 열정적 인로드 문을 추가 할 수 있기를 원합니다. 그게 가능하니?

+1

데이터베이스에 대한 호출이 표시되면 열심히로드되지 않는 다른 부분이 아닌 "BulletinEmailLogs"를 채우고 있는지 확인하십시오. (예 : BulletinEmailLogRecipients를 채울 수 있음) –

답변

0

의견을 보내 주셔서 감사합니다. 열정적 인로드 문을 제거하고 데이터베이스에 대한 호출이 한 번만 이루어 졌다는 것을 알았습니다. 이제 나는 다른 관심사/문제가 있습니다. 쿼리에 참조 된 다른 테이블이 있습니다. 익숙하지 않습니다. 저는 코드에 익숙하지 않아 관계를 제대로 찾지 못했을 수도 있습니다. 하지만 어쨌든, 고마워.