Kwerenda agregująca NHibernate dla relacji jeden do wielu

Mam następne podmioty:

<code>class Topic
{
    public virtual int Id {get; private set;} 
    public virtual ICollection<Vote> Votes {get; private set; }
}

class Vote
{
    public virtual Topic Topic {get; private set;}
    public virtual VoteType VotedTo {get; private set;} // enum VotedUp, VotedDown
}
</code>

Muszę załadować z db następną informację - wszystkie tematy (identyfikatory, właściwie nazwy, ale w tym przypadku demonstracyjnym to nie ma znaczenia) i dwa kolejne polaCountOfVotedUp, CountOfVotedDown (agregaty). Tak więc, jak rozumiem w świecie SQL, potrzebujemy łączenia, grupowania, spraw i liczenia.

Czy można uzyskać te informacje za pomocą LINQ przy mniejszej liczbie operacji przy użyciu db? Mam na myśli N + 1, dodatkowe selekcje, połączenia itp.

Wszystko, co próbowałem - to użycie LINQ NH, ale to agregaty Query tylko w Topic.Id i nie mogłem policzyć żadnej kolekcji głosów.

questionAnswers(1)

yourAnswerToTheQuestion