2016-09-08 64 views
0

我讀噸關於這個答案,但沒有找到一個辦法適用於我的具體情況C#,收集與NHibernate(QueryOver或LINQ)返回的渴望裝載集「不能同時獲取多袋」

我只需User對象具有ICollection<Group> Groups財產,每個組有一個「ICollection的角色媒體資源相關聯,現在我不得不急於負載充滿組和角色填充

我嘗試每一組的特定用戶

(其中許多其他)這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

我解決了它在收集媒體資源相關聯的設置.AsSet nhibernate地圖

相關問題