2011-06-06 6 views
1

J'ai trois entités dans la configuration NHibernate, utilisateur, album, photo. Utilisateur HasMany Albums Album HasMany PhotoNHibernate gauche à rejoindre 3 tables

J'essaye d'écrire une requête dans NHibernate qui fait à peu près la requête sql suivante. Je veux que le résultat soit un

Quelqu'un peut-il me donner une suggestion sur la façon dont cela peut être fait?

grâce

select p.* from UserTbl u 
Left outer join Album a 
on u.Id = a.UserId 
left outer join Photo p 
on a.Id = p.AlbumId 
where u.Email = '[email protected]' 

Répondre

1

Je ne vois pas pourquoi vous avez besoin se joint à gauche là-bas si vous commencez à partir de User et la récupération Photo.

Une possibilité:

IList<Photo> results = 
    session.Query<Photo>() 
      .Where(x => x.Album.User.Email = '[email protected]') 
      .ToList();