2012-05-28 4 views
3

나는 내 객체를 매핑 한 경우유창함 NHibernate에 게으른 부하

, 내 응용 프로그램에서 사방 .Not.LazyLoad() 쓰기 지연로드에 대한에 대한 몇 가지 질문과 잘 작동합니다. 하지만 몇 가지 문제가 있습니다.
예 : 클래스가 User입니다. 속성은 NameComments입니다. User에 매핑 Comments : 사용자가이

var user = session.Get<User>(1); 

경우 잘 작동하지만,

HasMany(x => x.Comments).KeyColumn("UserId").Not.LazyLoad(); 

어디서나 내가 User로드, Comments은 ...로드 User의 예 나쁜 인 그것으로로드되는 많은 댓글 내 응용 프로그램이 작동 ...
질문은 어떻게 필요하면 LazyLoad를 활성화합니까? 또는 .Not.LazyLoad()을 쓰지 않으면 어떻게 지연로드를 비활성화 할 수 있습니까?

답변

4

내 질문에 대한 답변을 찾았습니다.
어디 .Not.LazyLoad()를 작성하고이를 작성, 당신이해야 Comments을 얻을 필요 (ID = 1 사용자 수)하지 않는 경우 :

var user = session.QueryOver<User>() 
        .Fetch(u => u.Comments) 
        .Eager 
        .List() 
        .Where(u => u.Id == userId) 
        .FirstOrDefault(); 

를 또는 무엇을 당신이 필요합니다.

+0

이유는 다음과 같습니다. - 게으른로드가있는 경우 ... 원하는 때에 열망하게 가져와야합니다. – aggietech