2016-09-08 8 views
0
내가 이것에 대해 대답의 톤을 읽을

하지만 내 특정한 경우에 적용 할 수있는 방법을 찾을 수 없습니다 "동시에 여러 가방을 가져올 수 없습니다"C#을, NHibernate에 (QueryOver 또는 Linq에) 반환과 모음의 열망로드 컬렉션

전 단순히 많은 중 (

이제 내가 열망 부하에

내가 시도로 채워진 각 그룹의 작성 그룹 및 역할에 특정 사용자가 ICollection<Group> Groups 재산과 각 그룹이 User 객체 가지고 "ICollection이 역할 'proeprty이 기타)이 3 가지 방법 :

1 :

_session.Query<User>().FetchMany(u => u.Groups).ThenFetchMany(g => g.Roles) 
    .SingleOrDefault(); 

2 :

var utente = _session.QueryOver<User>() 
.Fetch(x => x.Groups).Eager 
.Fetch(x => x.Groups.First().Roles).Eager 
.Where(x => x.IdUtente == idUtente) 
.SingleOrDefault(); 

3 :

var query = _session.QueryOver<Utente>() 
    .Where(u => u.IdUtente == idUtente) 
    .Future(); 

Gruppo gruppi = null; 
Ruolo ruolo = null; 
_session.QueryOver<Utente>() 
    .Left.JoinAlias(u => u.Gruppi,() => gruppi) 
    .Left.JoinAlias(() => gruppi.Ruoli,() => ruolo) 
    .Future(); 

return query.ToList().First(); 

하지만 때마다 내가 얻을 : cannot simultaneously fetch multiple bags

답변

0

내가 그것을에서 수집 proeprty에 .AsSet 설정 해결 nhibernate지도