Avec impatience de récupérer de collecte multiples propriétés (à l'aide de QueryOver/Linq)?

J'ai trouvé 2 questions similaires:

Selon cette page:

Être prudent de ne pas chercher avec impatience
plusieurs propriétés de collection à l'
même temps. Bien que cette déclaration
sera beau travail:

var employees = session.Query<Employee>()
    .Fetch(e => e.Subordinates)
    .Fetch(e => e.Orders).ToList();

Il exécute un produit Cartésien de requête
sur la base de données, de sorte que le total
nombre de lignes retournées sera le
total Subordonnés fois au total
les ordres.

Permet de dire que j'ai le modèle suivant:

public class Person
{
    public virtual int Id { get; private set; }
    public virtual ICollection<Book> Books { get; set; }
    public virtual ICollection<Article> Articles { get; set; }
    public virtual ICollection<Address> Addresses { get; set; }
}

Quelle est la manière la plus simple avec impatience charge de toutes les personnes avec leurs Livres, d'Articles et d'Adresses à l'aide de QueryOver/Linq (sans retour d'un produit Cartésien)?

Grâce


Mise à jour:

Voir cremor's réponse ci-dessous et Florian Lim's réponse dans ce fil. Le code suivant fonctionne très bien, seulement un aller-retour à la base de données.

var persons = session.QueryOver<Person>()
    .Future<Person>();
var persons2 = session.QueryOver<Person>()
    .Fetch(x => x.Books).Eager
    .Future<Person>();
var persons3 = session.QueryOver<Person>()
    .Fetch(x => x.Articles).Eager
    .Future<Person>();
var persons4 = session.QueryOver<Person>()
    .Fetch(x => x.Addresses).Eager
    .Future<Person>();
InformationsquelleAutor | 2011-04-28